ホームページ >バックエンド開発 >C++ >ステートメント本文を含むラムダ式によって Entity Framework でエラーが発生するのはなぜですか?

ステートメント本文を含むラムダ式によって Entity Framework でエラーが発生するのはなぜですか?

DDD
DDDオリジナル
2024-12-31 19:42:09951ブラウズ

Why Does My Lambda Expression with a Statement Body Cause an Error in Entity Framework?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。