NHibernate로 매핑 한 데이터베이스 뷰 중 하나와 이상한 문제가있는 것 같습니다. 내가 매핑 한 뷰 중 하나에 대해 중복 레코드가 나타납니다. 나는 다음과 같은 뷰가NHibernate 뷰에서 쿼리가 중복 레코드를 반환합니다.
WorkDetailView
/ \
/ \
/ \
/ \
PickWorkDetailView PutWorkDetailView
각 개체가 다른 데이터베이스에 볼 수는 있지만를 나타내는 객체가 모두 PickWorkDetailView
및 WorkDetailView
에서 PutWorkDetailView
상속는 같은 분야의 많은 것을 공유하고 있기 때문이다.
다음 코드를 실행하면 2 결과가 나오지만 SQL Management Studio에서 실제 데이터베이스보기를 실행하면 1 결과가납니다.
List<WorkDetailView> workList = session.QueryOver<WorkDetailView>()
.List<WorkDetailView>().ToList();
흥미로운 부분은 내가 workList
컬렉션의 모든 항목을 볼 때 내가 한 WorkDetailView
객체와 하나 개 PickWorkDetailView
객체를 참조 이상이다. 또한 NHibernate가 실행중인 질의를 살펴보면 3 개의 뷰 (WorkDetailView, PickWorkDetailView 및 PutWorkDetailView)에서 이슈를 선택합니다. 이것은 전혀 소리가 나지 않습니다. 필요하다면 xml 매핑이나 유창한 매핑을 게시 할 수 있습니다.
감사합니다. @ dotjoe. 이것은 바로 그 것이었다. 나는 NHibernate 문서에서 그 중 하나를 놓쳤다는 것에 놀랐다. Fluent NH를 사용하는 분들은 ClassMap에 다음과 같은 진술 만하면됩니다 :'Polymorphism.Explicit();' –
정말 고맙습니다. – hikalkan
내 경우에도 필요한 대답뿐입니다. 매우 감사. –