比方說你有以下LINQ表達式:有沒有什麼辦法讓Linq到實體,以評估本地表達
from o in salesEntities.Orders where o.OrderDate < DateTime.Today.AddDays(-20) select o
實體框架不知道怎麼翻譯DateTime.Today.AddDays( - 20)到實體SQL表達式,您會收到以下錯誤:
LINQ to Entities does not recognize the method 'System.DateTime AddDays(Double)' method, and this method cannot be translated into a store expression.
因此,這裏是我的問題:有沒有什麼辦法讓LINQ到實體評估lambda表達式的一部分,替換一個恆定值,沒有我必須聲明一個局部變量來保存它?
這是正確的。在實際確實需要查詢中的AddDays(這不是其中的一種)的情況下,使用EntityFunctions類型。 – 2011-02-22 17:21:05
指向EntityFunctions的指針......不知道這一點。便利! – 2011-02-22 17:35:45
正如我在問題結束時問到的,這可以在沒有局部變量的情況下完成嗎?我剛剛寫了一個包含8個不同日期的查詢,所以現在我有8個額外的局部變量混淆了我的代碼。有一種方法可以說只是執行這一點,並將結果傳遞給查詢。 – Darren 2011-02-23 09:44:48