我有Post和Comment课程,他们有一对多关系,其中Post有一个评论列表.我如何将其映射为与Fluent NHibernate的单向关系,因为评论不需要知道其父Post?目前,这是我对Comment的映射:
Id(x => x.Id); Map(x => x.Body); References(x => x.User);
和邮政:
Id(x => x.Id); Map(x => x.Title); HasMany(x => x.Comments) .Inverse() .WithKeyColumn("PostId") .Cascade.AllDeleteOrphan();
这不起作用,因为当我尝试使用新添加的Comment保存Post实例时,Comment(PostId)上的外键保持为NULL.当然,使用NULL PostId无法保存注释.我已经尝试删除.Inverse()子句,但这也不起作用.
当您的外键具有非空约束时,NHibernate不支持此映射.如果删除该约束,您将看到NHibernate使用null PostId插入Comments,然后使用新Post的Id更新它们.
你要么需要:
删除非空约束和该Inverse
呼叫
保持约束,并映射关系的另一面(使其成为双向关系,并允许Inverse
正常工作)
有关一对多的NHibernate文档中对此进行了介绍,请参阅最后的" 非常重要说明 ".