2009-04-11 8 views
0

J'ai un à plusieurs avec la configuration suivanteFluentNHibernate hasMany pas la collecte de remplissage

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

Mais je reçois une collection n'a pas l'erreur d'initialisation.

Dont je dois préciser le foreignkey ici, des exemples que j'ai trouvé ne pas ????

Comment sait-il ce qui est la clé étrangère?

EDIT: En regardant de plus près l'exception que le sql essaye d'utiliser le champ Staff_id quand j'ai dit que c'est StaffID ??

Malcolm

Répondre

5

Essayez

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

est la valeur par défaut Nom employé de configuration automatique, bien que vous pouvez définir quelles conventions utilise la configuration automatique.

Si vous mappez la collection sur un IList <T>, vous devez ajouter AsBag() ou NHibernate se plaindre d'une colonne "idx" manquante. Si vous voulez charger la collection paresseuse, ajoutez .LazyLoad(). Et je vais habituellement avec .Cascade.AllDeleteOrphan().

Questions connexes