我与以下配置有一对多的关系
HasMany(x => x.Staff)
.Inverse()
.Cascade.All();
但是我得到一个集合未能初始化错误。
我不必在这里指定外键,我找到的例子不是????
它如何知道哪个是外键?
编辑:仔细观察异常sql试图使用字段Staff_id 当我说它是StaffID ??
马尔科姆
答案 0 :(得分:5)
尝试
HasMany(x => x.Staff)
.KeyColumnNames.Add("StaffID")
.Inverse()
.Cascade.All();
Staff_id是自动配置默认值,但您可以设置自动配置使用的约定。
如果您要将集合映射到IList <T
&gt;,则需要添加AsBag()或NHibernate会抱怨缺少“idx”列。如果你想延迟加载集合,添加.LazyLoad()。我通常会选择.Cascade.AllDeleteOrphan()。