是否可以在Linq中执行方法,即
var lst = (from ls in testEntity.Month where ls .Month1.ToString() == hello() select ls).ToList();
private string hello()
{
return "8";
}
我知道Linq不会执行自己,执行此操作时我会收到以下错误
LINQ to Entities无法识别方法'System.String ToString()',并且此方法无法转换为商店表达式。
答案 0 :(得分:3)
通常,您可以在LINQ中调用方法而不会出现问题。 您在这里遇到的问题特定于LINQ to Entities。 L2E需要将所有方法调用转换为适当的数据库语句,对于您调用它的方法,它不知道如何翻译它。
你可以重写你的hello()函数来返回一个表达式:
public Expression<Func<string>> hello() {
return () => "8";
}
这样L2E可以翻译语句。如果可行,取决于您的真实代码。