我在名爲'GetName'的Enum上有一個擴展方法,它返回一個字符串。我在linq中使用它來實體框架來選擇具有特定產品名稱的行。但是,當代碼執行時,它會拋出一個'NotSupportedException'在Enum上的擴展方法導致Linq查詢失敗
「LINQ to Entities does not recognized the method'System.String GetName(Tool.ViewModels.Product)'method,this method can not be converted into a商店表達「。
這裏是代碼我執行:
try
{
//Linq to Entity Framework
var contextRow = Contexts.Data.Source.SingleOrDefault(p => p.Product == Product.ProductOne.GetName());
}
catch (Exception e)
{
throw e;
}
是否LINQ的不承認在其評估擴展方法?還是有更多的事情呢?
這種問題在開始使用Entity Framework時非常有名:) –
這很容易解決,我只是好奇它爲什麼會發生。 – Martin
「這個方法不能被翻譯成商店表達式」,這意味着:沒有辦法將它翻譯成SQL。 –