流暢な nhibernate または nhibernate 自体 (つまり hbm ファイル) を使用して、クラスごとのテーブル戦略と階層ごとのテーブル戦略を組み合わせたいのですが、方法がわかりません。私は hbm よりも fluent の方が好きですが、それが無理なら hbm でも構いません。エンティティを ClassMap として導入し、その他すべてを流暢な SubClassMap として導入してこれをテストしましたが、流暢に生成された hbm ファイルでは、エンティティはクラスであり、他のすべては私が望んでいない結合クラスでした。この問題については、以下で詳しく説明します。
クラス階層:
public class Entity
{
public int ID { get; set; }
public string Name { get; set; }
}
public abstract class Person : Entity
{
public string Phone { get; set; }
}
public class SystemUser : Person
{
public string Password { get; set; }
}
エンティティ用に 1 つのテーブル、人用に 1 つのテーブル、およびそのすべての種類 (すべてのサブクラス) が必要です。つまり、Entity にはクラスごとのテーブル戦略を使用し、Person および SystemUser クラスには階層ごとのテーブル戦略を使用したいと考えています。データベース構造は次のようなものです。
EntityTable(ID(PK),Name)
PersonTable(EntityID(PK,FK),Phone,Password)
助けていただければ幸いです。