EntityFramework でステートメント本体を含むラムダ式エラー
EntityFramework でラムダ式を操作するときに発生する一般的なエラーは次のとおりです。
「ステートメント本文を含むラムダ式は次のように変換できません式ツリー。"
このエラーは、ラムダ式に式ではなくステートメントが含まれている場合に発生します。 EntityFramework では、クエリ内の条件や変換を指定するためにラムダ式が使用されます。ただし、式には、変数を変更したり、アクションを実行したりするステートメントを含めることはできません。
例:
次のコード スニペットはエラーをトリガーします:
Obj[] myArray = objects.Select(o => { var someLocalVar = o.someVar; return new Obj() { Var1 = someLocalVar, Var2 = o.var2 }; }).ToArray();
説明:
この例では、ラムダ式でステートメントを使用します。 body を使用して、オブジェクトを返す前にローカル変数 someLocalVar に値を割り当てます。ただし、このステートメントの本文は、EntityFramework による実行のために式ツリーに変換できません。
解決策:
このエラーを解決するには、ラムダ式を書き換えて、表現が含まれています。この場合、ステートメント本体を削除して、Obj オブジェクトを直接構築することを意味します。
Arr[] myArray = objects.Select(o => new Obj() { Var1 = o.someVar, Var2 = o.var2 }).ToArray();
ラムダ式は式のみで構成され、EntityFramework による処理のために式ツリーに変換できます。
>以上がステートメント本文を含むラムダ式によって Entity Framework でエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。