2009-04-11 14 views
0

Ich habe ein zu viel Beziehung mit der folgenden KonfigurationFluentNHibernate HasMany nicht Sammlung Füllung

HasMany(x => x.Staff) 
     .Inverse() 
     .Cascade.All(); 

Aber ich bekomme eine Sammlung Fehler konnte nicht initialisiert werden.

Muss ich hier nicht den Fremdschlüssel angeben, Beispiele, die ich nicht gefunden habe ????

Woher weiß es, welches der Fremdschlüssel ist?

EDIT: Bei genauerer Betrachtung der Ausnahme der SQL versucht, Feld Staff_id zu verwenden, wenn ich gesagt habe, es ist StaffID ??

Malcolm

Antwort

5

Versuchen

HasMany(x => x.Staff) 
    .KeyColumnNames.Add("StaffID") 
    .Inverse() 
    .Cascade.All(); 

Staff_id die Standard-Auto-Konfiguration ist, obwohl Sie, was Konventionen festlegen können automatisch zu konfigurieren verwendet.

Wenn Sie die Sammlung einem IList zuordnen, können Sie hinzufügen, dass AsBag() oder NHibernate über eine fehlende "idx" -Spalte klagen. Wenn Sie die Sammlung lazy laden möchten, fügen Sie .LazyLoad() hinzu. Und ich gehe normalerweise mit .Cascade.AllDeleteOrphan().

Verwandte Themen