Ich bin relativ neu zu NHibernate, aber habe es für die letzten paar Programme verwendet und ich bin verliebt. Ich bin zu einer Situation gekommen, in der ich Daten aus 4-5 Datenbanken in einer einzigen Datenbank zusammenfassen muss. Spezifisch sind es serielle Daten. Jede Datenbank hat ihre eigene Zuordnungsdatei, aber letztendlich haben alle Entitäten die gleiche Grundstruktur (serielle Klasse).NHibernate: Eine Basisklasse, mehrere Zuordnungen
Ich verstehe, NHibernate möchte eine Zuordnung pro Klasse, und so war mein erster Gedanke, eine Basis Serial Class zu haben und dann erben für jede andere Datenbank und erstellen Sie eine eindeutige Zuordnungsdatei (die geerbte Klasse würde Null Inhalt haben). Dies sollte gut funktionieren, um alle Daten zu erfassen und die Objekte zu füllen. Was ich dann gerne machen würde, ist diese geerbten Klassen (nicht sicher, was der richtige Ausdruck ist) in der Basisklasse-Tabelle zu speichern, indem ich die Basisklassenzuordnung verwende.
Das Problem ist, ich habe keine Ahnung, wie Sie NHIbernate zwingen, eine bestimmte Zuordnungsdatei für ein Objekt zu verwenden. Das Übergeben der geerbten Klasse an die Basisklasse bewirkt nichts, wenn 'session.save()' verwendet wird (es klagt über kein Mapping).
Gibt es eine Möglichkeit, explizit anzugeben, welches Mapping verwendet werden soll? Oder gibt es nur ein OOP-Prinzipal, das ich vermisse, um eine geerbte Klasse genauer in die Basisklasse zu übertragen? Oder ist diese Idee nur schlecht?
Alle Vererbung Sachen, die ich in Bezug auf NHibernate finden konnte (Kapitel 8) scheint nicht vollständig für diese Funktion anwendbar, aber ich könnte falsch liegen (die Tabelle-pro-Beton-Klasse aussieht vielleicht nützlich, aber ich kann mich nicht völlig damit beschäftigen, wie NHibernate herausfindet, was zu tun ist.
Yah, ich stimme zu, das macht Sinn. Ich habe auf eine Silberkugel gehofft, aber was du erwähnt hast, wird perfekt funktionieren. – anonymous