Klasse Karte-Einstellung mit Fluent NHibernate
Ich bin neu in der Verwendung von NHibernate und ich Schwierigkeiten hatten, eine klare Beispiele online, wie man erstellen Sie eine ClassMap für eine gespeicherte Prozedur ohne Verwendung von XML für die Zuordnungen. Vor kurzem habe ich diese arbeiten mit der Fluent-interfaces und wollte zu teilen, was ich gelernt habe.
Die gespeicherte Prozedur in Frage, die ein Objekt zurückgibt, wie diese:
public class ProductCategoryNavigation
{
public virtual int CategoryId { get; protected set; }
public virtual int CategoryNodeId { get; set; }
public virtual int ParentCategoryNodeId { get; set; }
public virtual string Name { get; set; }
public virtual string Title { get; set; }
public virtual string SeoUrl { get; set; }
public virtual bool IsActive { get; set; }
public virtual int DisplayOrder { get; set; }
public virtual int ProductCount { get; set; }
}
So, wie erstelle ich eine ClassMap, dass NHibernate verwenden, um Karte das Ergebnis einer gespeicherten Prozedur zu diesem Objekt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die ClassMap sieht wie folgt aus:
Den Aufruf der gespeicherten Prozedur sieht wie folgt aus:
Den AddEntity Anrufe sagt, was Entity-Klasse zum anzeigen der Ergebnisse, die die ProductCategoryNavigationMap oben definiert:
Wenn man sich sorgfältig auf den Wert der "sql" - variable, sehen Sie zwei Parameter:
Diejenigen, die gesetzt werden durch Aufrufe an:
Dann der Aufruf
.List<ProductCategoryNavigation>()
bietet uns eine IList, die es uns ermöglicht LINQ to Projekt, was wir wollen. In diesem Fall bin ich immer eine Liste von NavigationViewModel, die derzeit das gleiche wie ProductCategoryNavigation aber ändern können, unabhängig von der Person, wie gebraucht.Ich hoffe, das hilft anderen Entwicklern neues zu NHibernate!
Vorausgesetzt, Sie haben NHibernate richtig installiert ist, erstellen Sie eine neue Klasse, wo immer Sie sind, speichern Sie Ihre Klasse Karten.
Erstellen Sie eine Klasse wie:
Sobald Sie das eingerichtet haben, verwenden Sie Ihre repositories, wie gebraucht.
Im Hinterkopf behalten, dass ist nur ein basic einrichten. Je komplizierter die Struktur der Datenbank ist, desto komplizierter ist Ihre Klasse Karte bekommen.