组件集合中的级联项目

发布于 2024-09-01 21:38:28 字数 545 浏览 1 评论 0原文

我有一个包含集合的组件。如果我将集合标记为反向,我似乎无法让 NHibernate 保留集合中的项目。如果我在集合上没有 Inverse,它们将持续存在,但我会得到一个插入,然后是一个更新语句。

我的映射是:

m => m.Component(x => x.Configuration, c =>
{
  c.HasMany(x => x.ObjectiveTitleTemplates)
    .Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
    .AsSet()
    //.Inverse()
    .KeyColumns.Add("ObjectiveProcessInstanceId")
    .Cascade.AllDeleteOrphan();                                                               
});

有没有办法让它工作,将集合标记为反向,从而避免额外的插入?

谢谢!

I have a component which contains a collection. I can't seem to get NHibernate to persist items in the collection if I have the collection marked as Inverse. They will persist if I don't have Inverse on the collection, but I get an insert and then an update statement.

My mapping is :

m => m.Component(x => x.Configuration, c =>
{
  c.HasMany(x => x.ObjectiveTitleTemplates)
    .Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
    .AsSet()
    //.Inverse()
    .KeyColumns.Add("ObjectiveProcessInstanceId")
    .Cascade.AllDeleteOrphan();                                                               
});

Is there a way to get it working marking the collection as Inverse and therefore avoiding the extra insert?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冰葑 2024-09-08 21:38:28

将集合映射为逆向是不够的。您必须:

  • 从“Many”端创建引用
  • 在向集合添加元素时更新它

当您使用 Inverse 时,NHibernate 不会保留该端的关系。

Mapping the collection as inverse is not enough. You have to:

  • Create a Reference from the "Many" side
  • Update it when adding elements to the collection

When you use Inverse, NHibernate does not persist the relationship from that side.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文