私は NHibernate の規約ベースのマッピングを使用しており、マルチレベルの継承構造をマッピングする方法を見つけようとしています。
次のクラス構造がある場合
class ClassA
class ClassB : ClassA
class ClassC : ClassB
そして、3つのクラスすべてが単一のテーブルを表すようにしたい-データベースの「ClassC」
私の構成では、ClassA を RootEntity として定義しました
(ここで説明: http://fabiomaulo.blogspot.co.nz/2011/04/nhibernate-32-mapping-by-code_13.html )
public static void WithConventions(this ConventionModelMapper mapper, Configuration configuration)
{
var baseEntityType = typeof(ClassA);
mapper.IsRootEntity((type, declared) => baseEntityType.Equals(type.BaseType));
...
}
結果のスキーマは、ClassA で定義されたフィールドを含む ClassB と ClassC の別々のテーブルを作成します。