我遇到了這樣的問題:由於LINQ to Entities不支持「自定義方法」,你如何保持DRY?
Custom Methods & Extension Methods cannot be translated into a store expression
基本上我有一些複雜的LINQ查詢,所以想打破他們下到被實現爲返回IQueryables方法子查詢。我希望這些IQueryables可以在LINQ語句中組合在一起(因爲我非常肯定你可以在LINQ to SQL中完成)。
的問題是,如果你試試這個,你得到(例如):
LINQ到實體不承認 方法 「System.Linq.IQueryable`1 [主題] GetThreadsByMostReccentlyPosted(Int32)已' 方法,並且此方法不能將 翻譯成商店表達式。
對我來說,如果你使用LINQ ORM,那麼你需要能夠編寫LINQ查詢。否則,任何常見的查詢邏輯必須複製粘貼&。
鑑於此限制,我該如何保持與LINQ to Entities的DRY?
所以你真正想知道的是「我如何在EF中執行延遲執行,就像我可以在L2S中執行?」。 – 2010-01-11 15:18:59
到目前爲止,我唯一能做的就是將我的IQueryable轉換爲IEnumerable,此時我懷疑你失去了生成最佳SQL語句的能力 – Schneider 2010-01-11 15:20:11
否 - 與延遲執行無關。基本上它不會讓我寫linq語句,其中包括方法 – Schneider 2010-01-11 15:21:02