1

有没有办法用自定义列映射属性与数据库列,这不是 FK,只是一个候选键(它是唯一的表)?

如果没有,我在这里有什么选择?(需要select通过连接表限制来限制结果)

4

1 回答 1

1

NHibernate 支持名为property-ref. 它记录在这里:5.1.10。多对一。一些提取物:

property-ref属性应仅用于映射旧数据,其中外键引用关联表的唯一键而不是主键。这是一个丑陋的关系模型。例如,假设 Product 类有一个唯一的序列号,它不是主键。(unique 属性控制 NHibernate 使用 SchemaExport 工具生成的 DDL。)

因此,如果表包含例如Guid,这与目标表中的相同......这可以解决问题。示例映射:

<many-to-one name="Parent" property-ref="ParentGuid" column="THE_GUID_COLUMN"/>

使用流利的语法,它可能看起来像这样:

References(x => x.Parent)
    ...
    .PropertyRef("ParentGuid")
    .Column("THE_GUID_COLUMN");

无论如何,这并不理想,应该主要用于解决遗留问题。

于 2013-12-05T13:10:41.010 回答