ホームページ > バックエンド開発 > C++ > なぜ私のLINQからエンティティクエリは「エンティティをlinqにエンティティクエリで構築できない」とクエリを照会するのですか?

なぜ私のLINQからエンティティクエリは「エンティティをlinqにエンティティクエリで構築できない」とクエリを照会するのですか?

Barbara Streisand
リリース: 2025-02-01 14:46:11
オリジナル
415 人が閲覧しました

Why Does My LINQ to Entities Query Throw

linq to entities queryエラー:「linqにエンティティをエンティティクエリに構築できません」

エンティティフレームワークを使用する場合は、実行プロセス中に発生する可能性のある異常を確認してください。一般的なエラーは、「LINQにエンティティにエンティティクエリのエンティティを構築する」です。このエラーは、周辺エンティティにクエリ結果を投影しようとするときに発生します。

エラーの理由

特定のコードフラグメントでは、クエリ:

製品エンティティの新しいインスタンスでクエリの結果を投影してみてください。ただし、オブジェクトのオブジェクトがORMによって管理されているため、LINQからエンティティクエリでは、エンティティを構築または再構築することはできません。

ソリューション:匿名タイプまたはdto
from p in db.Products
where p.CategoryID == categoryID
select new Product { Name = p.Name };
ログイン後にコピー

を使用します

このエラーを克服してカスタマイズされたオプションを実行するには、匿名タイプまたはデータ送信オブジェクト(DTO)を使用できます。匿名タイプは、一連の属性を保存できる一時的な命名タイプであり、DTOは特定のドメインオブジェクトを示すカスタムクラスです。

<建>dto

を作成します この例では、名前属性のみが必要なので、次の方法でDTOを作成できます。

<改>dto

に投影される質問を変更する DTOを使用すると、DTOで予測するために問い合わせを変更できます:

DTOへの予測を通じて、データを正常に取得し、「LINQのエンティティの実体への照会照会の構築」エラーを避けることができます。
public class ProductDTO
{
    public string Name { get; set; }
}
ログイン後にコピー

以上がなぜ私のLINQからエンティティクエリは「エンティティをlinqにエンティティクエリで構築できない」とクエリを照会するのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート