Fluent NHibernate插入父id问题与多个关系

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

我不明白为什么NHibernate插入的子实体没有父实体的外键。 我发现解决这个问题的唯一办法是建立一种双向关系,还有别的办法吗

以下是课程:

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();
    }
}