1

Linq を使用して Entity Framework 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をオブジェクトに変換できる多くの式を変換できないため、クエリを変換しようとして成功しません。詳細については、msdnを参照してください。

于 2012-11-15T02:58:22.740 に答える