【问题标题】:NHibernate: many-to-one without primary keyNHibernate:没有主键的多对一
【发布时间】:2018-04-06 21:30:39
【问题描述】:

给定两个表:

具有列 ID (PK) 和名称的表 A

具有列 ID (PK) 和名称 (of A) 的表 B

我想将 B 作为 A 的属性,通过 Name 关联,该 Name 不是主键。

如果可能的话,我将如何在 A.hbm.xml 中映射(多对一)?

谢谢。

【问题讨论】:

    标签: nhibernate nhibernate-mapping


    【解决方案1】:

    我们可以使用神奇的property-ref设置:

    在父端(A类),集合映射:

    <bag name="Children" lazy="true" inverse="true" 
         batch-size="25" cascade="all-delete-orphan" >
      <key column="Name" property-ref="Name" />
      <one-to-many class="B"/>
    </bag>
    

    和child(B类)可以引用parent类似的方式:

    <many-to-one not-null="true" name="Parent" class="A"
       property-ref="Name" column="Name"  />
    

    另请查看:https://stackoverflow.com/a/31300425

    文档链接:5.1.11. many-to-one

    ... property-ref:(可选)关联的属性名称 加入此外键的类。如果未指定,则 使用关联类的主键。

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2011-04-21
      • 2013-03-26
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多