gpt4 book ai didi

fluent-nhibernate - Fluent NHibernate 一对多单向映射

转载 作者:行者123 更新时间:2023-12-03 20:22:22 27 4
gpt4 key购买 nike

我有 Post 和 Comment 类,它们有一对多的关系,其中 Post 有一个评论列表。我如何将其映射为与 Fluent NHibernate 的单向关系,因为评论不需要知道其父 Post?目前,这是我的评论映射:

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 插入带有空 PostId 的 Comments,然后使用新 Post 的 Id 更新它们。

您要么需要:

  • 删除非空约束和 Inverse调用
  • 保留约束,并映射关系的另一侧(使其成为双向关系,并允许 Inverse 正常工作)

  • 这在 NHibernate documentation for one-to-many's 中有介绍,请参阅最后的非常重要的说明。

    关于fluent-nhibernate - Fluent NHibernate 一对多单向映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554674/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com