12

Ich habe mich gefragt, ob es möglich ist, Fluent-NHibernate mit gespeicherten Prozeduren kommunizieren zu lassen, die bereits existieren, und Zuordnung von der Ergebnismenge zu meinen eigenen Domain-Objekten zuzuordnen.Unterstützt Fluent-NHibernate das Mapping zu Prozeduren?

Kann Fluent-NHibernate auch direkt Prozeduren ausführen, ohne dass ein Ergebnissatz zurückgegeben wird?

Grundsätzlich habe ich über die Auswirkungen der Verwendung von Fluent-NHibernate, um ein datiertes TypedDataSet-Modell durch ein domänengesteuertes Design, das einfache Objekte aus der DAL zurückgeben kann, zu ersetzen. Wenn Fluent-NHibernate nicht problemlos mit SPs arbeiten kann, hätte ich wahrscheinlich eine kombinatorische DAL, die FNH für einfache CRUD-Operationen nutzt, während komplexe Prozeduren von Enterprise Library verwaltet werden müssen. Während ich nicht denke, dass es optimal wäre, zwei konkurrierende DALs zu haben, wenn FNH nicht gut mit SPs spielen kann, würde ich gerne andere Ideen hören, als sowohl EntLib als auch FNH zusammen zu verwenden.

+0

@Gregory Ich habe mir deinen Blog angeschaut und ehrlich gesagt weiß ich es nicht, ich hatte einen Streit mit NHibernate/FNH und habe alles behalten, was aus ihnen kommt. Es scheint, als wäre es eine gute Frage, den Stack Overflow zu öffnen. –

Antwort

6

Die Stammversion von Fluent NHibernate (auf GitHub) unterstützt das Einfügen, Aktualisieren und Löschen gespeicherter Prozeduren.

In Ihrem Mapping-Klasse Konstruktor rufen:

SqlInsert("StoredProcName"); 

Disclaimer: Ich das selbst noch nicht getestet, aber es wird sicherlich bald kommen in praktisch.

Weitere Informationen finden Sie unter this thread in der Fluent NHibernate Google Group.

+0

Gut zu wissen, natürlich sind diese weit weniger nützlich als die Auswahlverfahren, aber ich denke, dass das in viel seltsamere Programmierung kommt. –

+0

Ja ... die aktuelle Implementierung ist nicht sehr nützlich. In jedem Fall muss FNH Unterstützung für die "loader" - und "sql-query" -Elemente hinzufügen, um die (* sob *) CRUD-gespeicherten Prozeduren vollständig zu unterstützen. Aber ich glaube nicht, dass dort Fortschritte gemacht wurden. –

11

Nur um meine eigene Frage zu beantworten, ist die Antwort nichts anderes als Sie können XML-Mappings für NHibernate schreiben und sie mit Fluent-NHibernate Mappings kombinieren. SP-Mapping für FNH wird höchstwahrscheinlich später hinzugefügt.