映射表,在多个字段上进行过滤

时间:2016-08-01 07:53:14

标签: c# fluent-nhibernate

考虑下表:

Person(idPerson,DVP,KNP,idInfo,details)
Primary key(idPerson,DVP,KNP)

PersonDetails(idPerson,DataCode1,date,value,label)
Primary key(idPerson,DataCode1,date)

我必须使用流畅的nhibernate ORM创建Person实体的映射(实体),以便过滤其细节。

以下是查询版本的外观:

Select *
From Person P
LEFT JOIN PersonDetail PD
ON P.idPerson = PD.idPerso AND pd.dataCode='CODEx' AND pd.value = p.idInfo

我应该如何在实体中进行映射? 注意:第二个表包含大量数据。

预期数据:Person.idPerson,Person.details,Person.KNP,PD.label 示例数据:

Person : idPerson/DVP/KNP/idInfo/details
Person(1,'K','Type1',101,'test')
Person(2,'K2','Type1,120,'test1')
PersonDetails(idPerson,DataCode1,date,value,label)
PersonDetails(1,'CODEx','01-01-2016 12:00',101,'infolbl1')
PersonDetails(1,'CODEx','01-02-2016 12:00',102,'infolbl2')
PersonDetails(1,'CODE2','01-03-2016 12:00',105,'infolbl3')
PersonDetails(2,'CODEx','21-01-2016 12:00',120,'infolbl4')
PersonDetails(2,'CODEx2','01-01-2016 12:00',1287,'infolbl5')

预期产出:

  • 1 / test / Type1 / infolbl1
  • 2 / TEST1 /类型1 / infolbl4

这会是一个好方法吗?

0 个答案:

没有答案