1

我正在使用 Linq 查询实体框架 SQL 数据库。

这是我的代码:

var found = this.keys.FirstOrDefault(r => r.Key.ToLowerInvariant() == key.ToLowerInvariant());

我收到以下错误:

LINQ to Entities 无法识别方法 'System.String ToLowerInvariant()' 方法,并且此方法无法转换为存储表达式。

我立即将其更改为:

var found = this.keys.FirstOrDefault(r => r.Key.ToLower() == key.ToLower());

但是,我收到了同样的错误。我用以下方法对其进行了测试:

var found = this.keys.FirstOrDefault();

我仍然收到完全相同的错误。这是以某种方式被缓存还是什么?任何帮助,将不胜感激。

谢谢!

4

1 回答 1

1

针对 EF 的查询被转换为 SQL,因此,它尝试转换您的查询但没有成功,因为 EF 无法转换 LINQ to objects 可以转换的许多表达式。您可以在 msdn 中找到有关它的更多信息。

于 2012-11-15T02:58:22.740 回答