【发布时间】:2015-03-09 16:08:50
【问题描述】:
在X引用Y,Y有很多X的场景中,如何配置双向映射的映射,这样当我在Y实例中添加很多X,保存Y实例时,工作正常吗?
为了让问题更清楚,这里是代码:
ClientCompany 模型有HasMany ContactPerson 相关模型:
public class ClientCompany
{
// ....
public virtual ISet<ContactPerson> ContactPeople { get; set; }
}
// mapping:
HasMany(x => x.ContactPeople)
.AsSet()
.Inverse()
.Cascade.All();
ContactPerson 具有引用母公司的不可为空的“ClientCompany”字段:
public class ContactPerson
{
// ....
public virtual ClientCompany ClientCompany { get; set; }
}
References(x => x.ClientCompany).Not.Nullable();
调用此代码:
sess.Save(new ClientCompany()
{
ContactPeople = new HashSet<ContactPerson>()
{
new ContactPerson()
}
});
导致此异常:
非空属性引用空值或瞬态值 xxxx.ContactPerson.ClientCompany
这只是简化的情况,我在实际项目中使用 AutoMapper,所以手动设置参考 不是解决方案
【问题讨论】:
标签: c# nhibernate fluent-nhibernate