C# 在linq中执行方法
是否可以在Linq ie中执行方法C# 在linq中执行方法,c#,linq,linq-to-entities,C#,Linq,Linq To Entities,是否可以在Linq ie中执行方法 var lst = (from ls in testEntity.Month where ls .Month1.ToString() == hello() select ls).ToList(); private string hello() { return "8"; } 我知道Linq不会自行执行,在执行此命令时,我得到以下错误 LINQ to Entities无法识别方法“Sys
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()”,并且无法将此方法转换为存储表达式。通常,您可以在LINQ中调用方法而不会出现问题。 这里遇到的问题特定于LINQ to实体。L2E需要将所有方法调用转换为适当的数据库语句,而对于调用的方法,它不知道如何转换 您可以重写hello()函数以返回表达式:
public Expression<Func<string>> hello() {
return () => "8";
}
public Expression hello(){
返回()=>“8”;
}
这样L2E就可以翻译这些语句。当然,这取决于您的实际代码。通常,您可以在LINQ中毫无问题地调用方法。 这里遇到的问题特定于LINQ to实体。L2E需要将所有方法调用转换为适当的数据库语句,而对于调用的方法,它不知道如何转换 您可以重写hello()函数以返回表达式:
public Expression<Func<string>> hello() {
return () => "8";
}
public Expression hello(){
返回()=>“8”;
}
这样L2E就可以翻译这些语句。当然,这取决于您的实际代码。尝试给出一些定义和代码尝试给出一些定义和代码