1

Fluent NHibernate(エンティティ、マッピングクラスなど)を使用して次のクエリをマッピングするにはどうすればよいですか。従業員IDは識別子テーブルに保存されます。個人テーブルには、従業員情報と非従業員情報が含まれています。

SELECT p.Id、p.FirstName、p.LastName

 FROM Person p  

ユニオンオール

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

  FROM Employee e 

INNERJOIN識別子ion(e.Id = i.value)

INNERJOINタイプton(i.typeid =t.idおよび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 に答える