如何在 NHibernate 中创建不使用主键的 m:n 关系?

发布于 2024-12-22 10:41:15 字数 942 浏览 0 评论 0原文

假设我有以下表格:

Diagram of 3 Tables: Publishers and Articles Connected by a Reference Table Named PublisherArticles

如果我现在设置在 NHibernate 中建立多对多关系,下面的 属性将映射将 PublisherArticles.VersionIndependentArticleId 添加到文章类的主键列 (Id),而不是 VersionIndependentId

<class name="Article" table="Articles">
    <id name="Id" />
    <property name="VersionIndependentId" not-null="true" />
    <property name="Version" not-null="true" />
    <property name="Text" not-null="true" />

    <set name="Publishers" table="PublisherArticles">
        <key column="VersionIndependentArticleId" />
        <many-to-many class="Publisher" column="PublisherId" />
    </set>
</class>

有没有办法改为定位 Articles.VersionIndependentId 列?

Assuming I had the following tables:

Diagram of 3 tables: Publishers and Articles connected by a reference table named PublisherArticles

If I now set up a many-to-many relationship in NHibernate, the <key column /> attribute below will map the PublisherArticles.VersionIndependentArticleId to the primary key column of the article class (Id) instead of VersionIndependentId.

<class name="Article" table="Articles">
    <id name="Id" />
    <property name="VersionIndependentId" not-null="true" />
    <property name="Version" not-null="true" />
    <property name="Text" not-null="true" />

    <set name="Publishers" table="PublisherArticles">
        <key column="VersionIndependentArticleId" />
        <many-to-many class="Publisher" column="PublisherId" />
    </set>
</class>

Is there any way to target the Articles.VersionIndependentId column instead?

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

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

发布评论

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

评论(1

糖粟与秋泊 2024-12-29 10:41:15

这可以使用 foreign-key 属性来完成。

但是,我的问题中显示的模型不适用于 NHibernate(它实际上是多 m:n 关系:关系的 m 方不是唯一记录,而是由多个记录共享的密钥)。

我不确定这是否是不好的标准化,只是我的 ORM 的限制还是其他什么。

This can be done using the foreign-key property.

However, the model shown in my question does not work with NHibernate (it's actually a multi-m:n relationship: the m side of the relationship is not a unique record but a key shared by multiple records).

I'm not sure if this is bad normalization, just a limitation of my ORM or something else.

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