我似乎有一個奇怪的問題,我與我用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
只是我的案例所需的答案。非常感激。 –