私は現在、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クラスを派生させる方法はありますか?