NHibernate でマップしたデータベース ビューの 1 つで奇妙な問題が発生しているようです。マップしたビューの 1 つで重複したレコードを取得しています。次のビューオブジェクトがあります
WorkDetailView
/ \
/ \
/ \
/ \
PickWorkDetailView PutWorkDetailView
各オブジェクトはデータベース内の異なるビューを表しますが、多くの同じフィールドを共有しているため、PickWorkDetailViewとPutWorkDetailViewから継承されます。WorkDetailView
次のコードを実行すると、2 つの結果が得られますが、SQL Management Studio で実際のデータベース ビューを実行すると、1 つの結果が得られます。
List<WorkDetailView> workList = session.QueryOver<WorkDetailView>()
.List<WorkDetailView>().ToList();
興味深い点は、workList上記のコレクションのすべてのアイテムを見ると、1 つのWorkDetailViewオブジェクトと 1 つのPickWorkDetailViewオブジェクトが表示されることです。また、NHibernate が実行しているクエリを見ると、3 つのビュー (WorkDetailView、PickWorkDetailView、および PutWorkDetailView) からの選択が発行されます。これはまったく正しく聞こえません。必要に応じて、xml マッピングまたは流暢なマッピングを投稿できます。