NHibernate, wie man eine Eigenschaft einem Subselect zuordnet

8

Ich habe derzeit ein Legacy-System, das SPs ausschließlich für den Zugriff auf die DB verwendet. Mein Domain-Objekt sieht etwa so aus:

%Vor%

Der SP, den ich zugeordnet habe, sah so aus:

%Vor%

Wie Sie sehen können, werden die Überwachungsinformationen also von der Entität in der Datenbank getrennt, und CreatedBy / CreatedOn (und ModifiedBy / ModifiedOn) werden in einer separaten Tabelle namens AuditTrail gespeichert. Das Feld AuditActionID in der Tabelle gibt an, ob es sich um ein Create / Update handelte.

Wie kann ich dieses Mapping mit NHibernate einrichten? Ich schaute in JOIN, aber es gibt mir nicht die Möglichkeit, durch die zusätzlichen Werte zu beschränken (und ein Join ist nicht was ich will).

Auch wenn dies in Fluent NHibernate möglich ist, ist das ein Bonus, aber mir geht es gut, wenn ich nur die Standard-NHibernate Mapping-Konfiguration versuche, wenn sie mich dorthin bringt.

UPDATE:

Ich habe einen Weg gefunden, dies zu tun, aber ich bin kein Fan. Ich habe eine SQLQuery eingerichtet, die die Daten liest und sie zurück auf ein Objekt abbildet. Es funktioniert, aber ich würde das gerne über Mapping machen. Ist es überhaupt möglich, da die "Werte" aus der Datenbank, auf die ich mappiere, ein Subselect ist und nicht editierbar?

Lösung:

Dank dem Tipp von Diego war dies die letzte Lösung, die ich gefunden habe (mit Fluent NHibernate, in meiner ClassMap-Datei):

%Vor%

Danke, M

    
Matthew Bonig 22.07.2010, 19:40
quelle

1 Antwort

7

Sie können die select-Klausel als formula für Ihre Eigenschaft angeben.

    
Diego Mijelshon 22.07.2010, 21:31
quelle

Tags und Links