Fluent NHibernate插入父id问题与多个关系
我不明白为什么NHibernate插入的子实体没有父实体的外键。 我发现解决这个问题的唯一办法是建立一种双向关系,还有别的办法吗 以下是课程:Fluent NHibernate插入父id问题与多个关系,nhibernate,fluent,bidirectional-relation,Nhibernate,Fluent,Bidirectional Relation,我不明白为什么NHibernate插入的子实体没有父实体的外键。 我发现解决这个问题的唯一办法是建立一种双向关系,还有别的办法吗 以下是课程: public class Parent { public virtual int ParentId {get; private set;} public virtual IList<Child> Notes {get; private set;} } public class Child { public virtu
public class Parent
{
public virtual int ParentId {get; private set;}
public virtual IList<Child> Notes {get; private set;}
}
public class Child
{
public virtual ChildId {get; private set;}
public virtual Name {get; private set;}
}
但它应该是:
INSERT INTO Child(ChildId, Name, ParentId)
我想补充一点,我不想用双向关系来解决这个问题,我不希望子对象引用父对象。谢谢 父类映射的子类应该有一个逆类
public class ParentClassMap : ClassMap<Parent>
{
public ParentClassMap(){
Id(x => x.ParentId);
HasMany(x => x.Notes).Cascade.AllDeleteOrphan().Inverse();
}
}
公共类ParentClassMap:ClassMap
{
公共ParentClassMap(){
Id(x=>x.ParentId);
HasMany(x=>x.Notes).Cascade.AllDeleteOrphan().Inverse();
}
}
谢谢
Neelesh将Not.KeyNullable()
添加到您的映射中
注意:此功能需要NHibernate 3.2。这将导致根本没有保存操作,因为没有双向关联。您所说的完全正确。有什么特别的原因不让关系变成双向的吗?很可能是因为域类中不需要(或不需要)双向关联。拥有一个对象引用只是为了保存它不是很“持久性无知”。
INSERT INTO Child(ChildId, Name, ParentId)
public class ParentClassMap : ClassMap<Parent>
{
public ParentClassMap(){
Id(x => x.ParentId);
HasMany(x => x.Notes).Cascade.AllDeleteOrphan().Inverse();
}
}