Fluent Nhibernate und Sql Server-Fehler bei der privaten Setter-Installation

8

Ich versuche, einen ersten Schritt mit fließenden Nhibernate mit SQL Server Express zu vervollständigen, um diese Funktionen in meinem Projekt hinzuzufügen. Habe aber ein paar Fehler bekommen. Da ich Neuling bin, konnte Nhibernate ein Problem für einige Zeit nicht lösen. Ich habe eine Entität mit

%Vor%

Accessoren. Und diese Entität wird der Tabelle mit der Identitätsspalte {1,1} auf dem SQL-Server zugeordnet. Aber beim Erstellen der Session factory erhalte ich einen Fehler:

%Vor%

Ich verstehe, dass private Setter verwendet wird, um die Einstellung dieser Eigenschaft zu kapseln, aber warum bekomme ich dann diesen Fehler?  PS: Beispiel vor Ort von fließend für Nhibernate verwendet SQLLite db und alles ist in Ordnung.

    
Johnny_D 19.04.2012, 11:46
quelle

2 Antworten

20

Dies ist ein Problem, das viele NH / FNH-Benutzer, einschließlich mir, traurig gemacht hat.

Bis vor kurzem hat NHibernate privaten Setter mit Proxy-Objekten erlaubt. Aber beginnend mit NH 3.2 sind private Setter nicht mehr erlaubt - sie müssen "' public / protected virtual' oder 'protected internal virtual ' sein", heißt es in der Fehlermeldung .

Dies ist eine bahnbrechende Änderung für eine Menge des FNH / NH-Beispielcodes, der da draußen ist, und ist besonders verwirrend für Neulinge.

    
Tom Bushell 20.04.2012, 14:45
quelle
7

Deklarieren Sie die Eigenschaft als public virtual int Id { get; protected set; } . Das von NHibernate generierte Proxy-Objekt kann dann die Eigenschaft festlegen.

Eine andere Lösung kann sein, ein Hintergrundfeld zu verwenden:

%Vor%

Und dann verwenden Sie Mapping:

%Vor%     
Espen Burud 19.04.2012 13:36
quelle