4

私は現在、NHibernateとTable-per-class継承と戦っています。

1つの基本クラス(Baseと呼びましょう)と10の派生クラスがあります。サブクラスの左外部結合を使用せずに、Baseクラスでクエリを実行したい場合があります。

var query = dao.CurrentSession.QueryOver<Base>()
   .JoinQueryOver(b => b.Property)
   .Where(p => p.FirstName == "Max")
   .Select(a => a.Id).Take(10);

私が得たのは、SQLクエリの多くの「左外部結合」ですが、これは実際には必要ありません。また、クエリのパフォーマンスが低下します。

この場合、どういうわけかポリモーフィズムを取り除くことは可能ですか?継承モデルを変更し、階層に含まれない他のクラスからBaseクラスを派生させる方法はありますか?

4

1 に答える 1

1

ベース マッピング ファイルで、次のように設定します。

polymorphism=”explicit”
于 2012-07-03T22:38:54.113 に答える