エンティティフレームワークを使用する場合は、実行プロセス中に発生する可能性のある異常を確認してください。一般的なエラーは、「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 サイトの他の関連記事を参照してください。