我正在使用來自LinqKit的PredicateBuilder構建我的查詢。 這是偉大的,而且正是我所期待的。EntityFramework正在鑄造問題
爲了讓我的代碼的可重用性(表和視圖),我創建了一個通用的謂詞生成器類:
public class LocalPredicateBuilder<T> where T : IResort
...
var predicate = PredicateBuilder.True<T>(
暴露BuildPredicate方法。我可以這樣使用它:
var predicate = new LocalPredicateBuilder<Resort>().BuildPredicate();
var resorts = _entities.Resorts.Where(predicate).ToList();
然而,當我嘗試這樣做,我得到這個運行時錯誤(順便說一句實體對象實現IResort): 無法轉換類型「ConsoleApplication1.Entities.Resort」來鍵入'ConsoleApplication1.Entities.IResort'。 LINQ到實體僅支持鑄造實體數據模型的基本類型
我試圖鑄造(沒有工作):
var rlist = eq.Cast<Resort>().ToList();
任何其他辦法可以解決這個問題,鑄造?
UPDATE
沒有多少運氣得到謂詞使用接口工作..所以我solved my problem by going with POCOs.
我有。將無法編譯,否則 – 2010-10-22 14:06:46
好吧然後它的問題,我已經添加後編輯。 – 2010-10-22 14:30:51
查詢實際上返回列表所以它應該有可能進行該演員。 ISomething僅用於創建用於查詢的謂詞。 –
2010-10-22 16:45:25