如何使用Fluent NHibernate(实体,映射类等)映射以下查询,员工ID存储在标识符表中 . 人员表包含员工信息和非员工信息 .
SELECT p.Id,p.FirstName,p.LastName
FROM Person p
UNION ALL
SELECT e.Id, e.FirstName, e.LastName
FROM Employee e
INNER JOIN标识符i(e.Id = i.value)
INNER JOIN类型t on(i.typeid = t.id和i.typeName ='EmployeeId')
任何人?
1 回答
您需要使用联合策略来映射子类 . 阅读了Fluent NHibernate wiki的subclassing部分,但不要在
ClassMap
中调用DiscriminateSubclassesOnColumn
,而是调用UseUnionSubclassForInheritanceMapping
.您最终得到的是基类的
ClassMap
,然后是每个子类的SubclassMap
;ClassMap
会在它的构造函数中调用UseUnionSubclassForInheritanceMapping
.像这样的东西: