FluentNHibernate HasMany没有填充集合

Mal*_*olm 0 fluent-nhibernate

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

 HasMany(x => x.Staff)  
       .Inverse()  
       .Cascade.All();  
Run Code Online (Sandbox Code Playgroud)

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

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

怎么知道哪个是外键?

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

马尔科姆

Jam*_*Ide 5

尝试

 HasMany(x => x.Staff)
   .KeyColumnNames.Add("StaffID")
   .Inverse()  
   .Cascade.All();
Run Code Online (Sandbox Code Playgroud)

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

如果您要将集合映射到IList <T>,则需要添加AsBag()或NHibernate会抱怨缺少"idx"列.如果你想延迟加载集合,添加.LazyLoad().我通常会使用.Cascade.AllDeleteOrphan().