さて、ここに問題があります。データベースには、100列のvwComponantAという大量の情報を含むビューがあります
[Column()] 属性を使用するすべてのマッピングを含む ComponantA という .net アプリ内にエンティティがあります。これはうまく機能しますが、DB で select * を実行してオブジェクトを設定するため、遅くなります。これも機能します.
上記のパフォーマンスの問題を回避するために、DynamicLinq を導入しました。これにより、戻す列の量を減らすことができますが、タイプ セーフを使用して、通常の Linq を使用してクエリを実行できます。これは素晴らしいことです。次に、私が持ち帰ったカットダウンフィールドに対処するために、個別の POCO コンポーネントがあり、それぞれに独自の [Column] 属性のセットがあり、マッピングクラスを使用して実行時にマップされます。
問題は、大規模なデータセットを扱う場合、これらの間のマッピングが非常に遅くなる可能性があることです。10000 レコードが 10000 回マップされるなどです。EF が行うことは、コンポーネント間でマッピングする DynamicProxyClass を作成することです。
私の質問は、どうすればマッピングを回避し、EF にマッピングを任せることができるでしょうか? (動的linqのためにIQueryable
NOTを扱っています)IQueryable<T>
クエリを動的に保ちながら [Column] 属性を活用する方法が必要です。
これはすべてコード ファーストであり、エンティティ フレームワーク 5 です。
助けてくれてありがとう。ニック