Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在linq中执行方法_C#_Linq_Linq To Entities - Fatal编程技术网

C# 在linq中执行方法

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

是否可以在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无法识别方法“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就可以翻译这些语句。当然,这取决于您的实际代码。

尝试给出一些定义和代码尝试给出一些定义和代码