C#学习教程:多列多对一分享


多列多对一

我有一个遗留数据库和两个表之间的一对一关系。 关键是关系使用两列,而不是一列。 有没有办法在nhibernate中说,当获取一个被引用的实体时,它在join语句中使用了两列,而不是一个? 我有一个类似的表结构

TaskProgress

任务

每个任务都可以在不同的任务中进行分配。 这意味着任务进度的唯一任务只能由AssignmentId和TaskId字段建立。

我想用这个:

References(x => x.Template) .Columns() .PropertyRef() 

但无法获得如何在多列上映射连接,任何想法?

我假设您在示例代码中使用PropertyRef,这两列不会形成复合主键。 如果是这种情况,那么你运气不好,因为property-ref只能接受一个属性。 从问题NH-1722的评论来看,这个function显然在Hibernate中可用但尚未移植到NHibernate。

更新:您添加的架构看起来像多对多,在任务和分配之间有额外的数据关系。 TaskProgress是Task和Assignment之间的链接表。 如果TaskProgress没有额外的UserId字段,那么您可以将其建模为简单的多对多。 因为链接表有额外的数据,所以它会变得有点复杂。

具有附加数据的多对多通常通过创建表示链接表(TaskProgress)的对象并将该关系建模为两个一对多关系来进行建模。 也就是说,Task和Assignment与TaskProgress具有一对多的关系。 TaskProgress具有任务,分配和用户的属性。

上述就是C#学习教程:多列多对一分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960111.html

发表评论

邮箱地址不会被公开。 必填项已用*标注