FluentNHibernate HasMany没有填充集合

时间:2009-04-11 08:17:19

标签: fluent-nhibernate

我与以下配置有一对多的关系

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

但是我得到一个集合未能初始化错误。

我不必在这里指定外键,我找到的例子不是????

它如何知道哪个是外键?

编辑:仔细观察异常sql试图使用字段Staff_id 当我说它是StaffID ??

马尔科姆

1 个答案:

答案 0 :(得分:5)

尝试

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

Staff_id是自动配置默认值,但您可以设置自动配置使用的约定。

如果您要将集合映射到IList <T&gt;,则需要添加AsBag()或NHibernate会抱怨缺少“idx”列。如果你想延迟加载集合,添加.LazyLoad()。我通常会选择.Cascade.AllDeleteOrphan()。