我有一个遗留数据库和两个表之间一对一的关系。问题是关系使用两列,而不是一列。在 nhibernate 中是否有某种方法可以说,当获取引用的实体时,它在 join 语句中使用了两列,而不是一列?
我有一个类似的表结构
任务进度
Tasks
每个任务可以分配到不同的任务中。这意味着任务进度的唯一任务只能通过“分配”和“任务 ID”字段来创建。
我正在尝试使用这个:
References(x => x.Template)
.Columns()
.PropertyRef()
但无法了解如何在多个列上映射联接,有什么想法吗?
我根据您在示例代码中对 PropertyRef 的使用假设这两列不形成复合主键。如果是这种情况,那么你就不走运了,因为 property-ref 只能接受一个属性。从评论来看问题 NH-1722 https://nhibernate.jira.com/browse/NH-1722,这个功能显然在 Hibernate 中可用,但尚未移植到 NHibernate。
更新:
您添加的架构看起来像是多对多,在任务和分配之间具有附加数据关系。 TaskProgress是Task和Assignment之间的链接表。如果 TaskProgress 没有附加的 UserId 字段,那么您可以将其建模为简单的多对多。因为链接表有额外的数据,所以变得有点复杂。
具有附加数据的多对多通常是通过创建表示链接表 (TaskProgress) 的对象并将关系建模为两个一对多关系来进行建模。即Task和Assignment与TaskProgress是一对多的关系。 TaskProgress 具有任务、分配和用户属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)