2010-08-19 36 views
0

我有一個相當複雜的實體結構,其中幾個類從一個基類繼承,因此在nhibernate中選擇一個表的子類結構。按子類結構在nHibernate表上使用Linq進行查詢

BaseProject

ProjectA : BaseProject 
ProjectB : BaseProject 
ProjectC : BaseProject 
ProjectD : BaseProject 

我想搜索其中的標準之一將是項目類型。我試圖避免爲每個ProjectType編寫一個單獨的查詢規範。

有誰知道這是如何實現?它甚至是Linq對nHibernate可以做的事情,因爲我認爲它還沒有完成。

我期待像x => x.GetType() == typeof(ProjectTypeA)工作,但事實並非如此。

回答

1

不幸的是,您所描述的方式是使用當前Linq提供程序執行此操作的唯一方法。你需要公開一個由NHibernate映射的屬性(可能是一個枚舉),這個屬性由每個子類公開。一個有用的技巧是映射此屬性與update=false,以確保它永遠不會改變。

你可以看到我的回答更多詳細信息,類似的問題here

相關問題