"EntityFramework の「ステートメント本文を含むラムダ式は式ツリーに変換できません」エラーについて理解する"
The "Aステートメント本体を含むラムダ式を式ツリーに変換できません」というエラーが、ステートメント本体を含むラムダ式を式に変換しようとすると発生する 木。このエラーは通常、LINQ クエリを使用してデータを取得する Entity Framework シナリオで発生します。
このエラーの原因の 1 つは、単純な式のみをイミディエートに適用できる Linq-To-SQL が使用されている場合です。 => の右側オペレーター。この制限の理由は、これらの式が実行されず、SQL クエリに直接変換されるためです。
この問題の解決策として、ラムダ式をリファクタリングしてステートメント本体を除外します。たとえば、次のコードを書き換えます:
Obj[] myArray = objects.Select(o => { var someLocalVar = o.someVar; return new Obj() { Var1 = someLocalVar, Var2 = o.var2 }; }).ToArray();
次のように:
Arr[] myArray = objects.Select(o => new Obj() { Var1 = o.someVar, Var2 = o.var2 }).ToArray();
この変更により、ステートメント本体が削除され、ラムダ式の式ツリーへの変換が可能になり、エラー。
以上がステートメント本体を含むラムダ式を Entity Framework の式ツリーに変換できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。