LINQ

2010-12-14 44 views
0

内执行方法是否有可能与Linq中执行的方法,即LINQ

var lst = (from ls in testEntity.Month where ls .Month1.ToString() == hello() select ls).ToList(); 

    private string hello() 

     { 
      return "8"; 
     } 

我知道的LINQ不会执行本身,而执行此我收到以下错误

LINQ到实体无法识别方法'System.String ToString()',并且此方法无法转换为商店表达式。

+0

尝试给一些定义和代码 – ratty 2010-12-14 09:26:15

回答

3

通常,您可以在LINQ中调用方法而不会出现任何问题。 您遇到的问题是特定于LINQ to Entities。 L2E需要将您的所有方法调用转换为适当的数据库语句,并且您调用它的方法不知道如何翻译它。

你可以重写你的问候()函数返回一个表达式:

public Expression<Func<string>> hello() { 
    return() => "8"; 
} 

这样L2E可以翻译的语句。如果有效,当然取决于你的真实代码。