DatabaseFirstアプローチでEntityFrameworkとSQLServer2008を使用しています。
私の問題は:
多くの列(〜100)を保持するテーブルがいくつかあり、多くの行を取得しようとすると、そのテーブルから3つまたは4つの列だけを使用する必要がある場合でも、結果が返されるまでにかなりの時間がかかります。 。
私はこの問題を解決する方法を見つけようとしてStackoverflowで半日を過ごしました、そして私は2つの解決策を思いつきました:
- ストアドプロシージャを使用して、必要な列のデータを取得します。
- .edmx(xml)ファイルと.csファイルを編集して、使用しない列を削除します。
私の問題は再びです:
ストアドプロシージャを使用して必要な列のデータを取得すると、Entity Frameworkのメリットが失われ、代わりにADO.NETを使用して、ストアドプロシージャを直接呼び出すことができます...
データベースに変更を加えるたびに、.edmxファイルを再生成する必要があり、以前に行った変更が失われるため、2番目の解決策をとることはできません:'(
Entity Frameworkでこれを行う方法はありますか?それは可能ですか!
NHibernateやDapperのような他のORMが存在することは知っていますが、多くの苦痛を引き起こすことなくこの機能を提供できるかどうかはわかりません。