1
我正在做一個使用linq查詢實體,我想重複使用相同的代碼,但有一個稍微不同的選擇語句。這是查詢:轉換新的對象創建linq表達式爲linq到實體
return from f in GetFields<T>()
where f.Id == Id
select new Prop<V>
{
Name = f.Name,
Value = toValue(f.value)
};
其中toValue是一個Func,它創建一個新的Value對象。我想使用幾種toValue函數,它們具有這種類型的身體:
var toValue = f => new DerivedValueClass {
FirstField = f.FirstField,
SecondField = f.SecondField
}
所以它只是簡單的賦值,它將被sql輕鬆轉換爲實體。然而,當我執行的代碼,LINQ到實體規定:
The LINQ expression node type 'Invoke' is not supported in LINQ to Entities
我想這是不可能的調用toValue功能,因爲它不能被翻譯。如何從函數toValue創建表達式以便在linq查詢中使用它?