【问题标题】:How can I create an m:n relationship not using the primary key in NHibernate?如何不使用 NHibernate 中的主键创建 m:n 关系?
【发布时间】:2012-01-26 07:56:31
【问题描述】:

假设我有以下表格:

如果我现在在 NHibernate 中设置多对多关系,下面的 <key column /> 属性会将 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 列吗?

【问题讨论】:

    标签: database nhibernate orm mapping relationship


    【解决方案1】:

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

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

    我不确定这是否是不好的规范化,只是我的 ORM 的限制或其他原因。

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 2011-05-29
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多