如何强制nhibernate设置子项的外键?

发布于 2024-08-27 15:09:40 字数 406 浏览 7 评论 0原文

我在映射中有一个集合:

<bag name="Values" cascade="all-delete-orphan" lazy="false" inverse="true">
  <key column="[TemplateId]"/>
  <one-to-many class="MyNamespace.Value, MyLib"/>
</bag>

Value 对象有一个外键 [TemplateId]。两个实体的生成器都设置为“身份”。 当我为父 Template 对象调用 session.Save() 时,Value 对象的 [TemplateId] (外键)设置为零,因此出现 SQL 异常。 我如何强制 nhibernate 将子项的 FK 值设置为插入的父对象的值?

i have a collection in the mapping:

<bag name="Values" cascade="all-delete-orphan" lazy="false" inverse="true">
  <key column="[TemplateId]"/>
  <one-to-many class="MyNamespace.Value, MyLib"/>
</bag>

the Value object has a foreign key [TemplateId]. both entities has their generator set to "identity".
when i call session.Save() for the parent Template object, the Value objects has their [TemplateId] (the foreign key) set to zero, so an SQL exception appears.
how do i forse nhibernate to set the FK value for the child items to the value of the inserted parent object?

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

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

发布评论

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

评论(1

浮生面具三千个 2024-09-03 15:09:40

我自己管理过:
我唯一需要做的就是设计子对象映射并按以下方式持久化:

<many-to-one name="Template" class="MyNamespace.Template, MyLib"
                 column="[TemplateId]" not-null="true" />

因此子对象具有对父对象的引用而不是父对象的 Id

i've managed it myself:
the only thing i was needed to do is to design child object mapping and persistent the following way:

<many-to-one name="Template" class="MyNamespace.Template, MyLib"
                 column="[TemplateId]" not-null="true" />

so the child object has a reference to the parent instead of the parent's Id

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