1

如何使用 Fluent NHibernate(实体、映射类等)映射以下查询,员工 ID 存储在标识符表中。人员表包含员工信息和非员工信息。

选择 p.Id、p.FirstName、p.LastName

 FROM Person p  

联合所有

SELECT e.Id, e.FirstName, e.LastName 

  FROM Employee e 

INNER JOIN 标识符 i on (e.Id = i.value)

INNER JOIN type t on (i.typeid = t.id and i.typeName = 'EmployeeId')

任何人?

4

1 回答 1

3

您需要使用联合策略来映射您的子类。阅读 Fluent NHibernate wiki 的子类化部分,但不要调用DiscriminateSubclassesOnColumn你的ClassMap调用UseUnionSubclassForInheritanceMapping

你最终得到的是ClassMap你的基类,然后是SubclassMap你的每个子类;会在它的构造函数中ClassMap调用。UseUnionSubclassForInheritanceMapping

像这样的东西:

public class PersonMap : ClassMap<Person>
{
  public PersonMap()
  {
     // ... mappings ...
     UseUnionSubclassForInheritanceMapping();
  }
}

public class EmployeeMap : SubclassMap<Employee>
{
  public EmployeeMap()
  {
    // ... mappings ...
  }
}
于 2010-09-09T15:12:58.233 回答