3

現在、非常に大規模なデータベースを備えたシステムがあり、ストアドプロシージャはCUDとクエリの両方に使用されます。データセットは、SPクエリから結果を取得するために使用されます。

現在、EntityFrameworkを使用して同じデータベースに対して別のプロジェクトを開発することを検討しています。データベースにクエリを実行する場合、ストアドプロシージャは多くの場合、ターゲットテーブルにないフィールドを収集するために多くの結合を実行しますが、クライアントが何らかの方法で必要とする結合テーブルからのデータを収集します。DataSetsを使用する場合、SPによって返されるすべてのフィールドがDataTableに含まれていました。したがって、DataTableは実際にはターゲットデータベーステーブルと一致しません。

EFでこのシナリオを処理する正しい方法は何ですか?モデルを作成するとき、エンティティは各テーブルにマップされます。これは、上記のように、SPの結果と一致する場合があります。SPクエリ結果の「追加」フィールドをプロパティとしてエンティティクラスに追加し、クエリで入力することはできますが、特定のエンティティタイプのCUDに関しては、これらのプロパティは除外されますか?SPではなくLINQを介してエンティティにクエリを実行した場合、EFウェイのように、結合されたエンティティへのリレーショナルプロパティを持つエンティティインスタンスがあり、それらの「追加の」プロパティの使用は、リレーショナルプロパティをナビゲートすることによって実行されますか?

4

1 に答える 1

0

Entity Framework (バージョン 4 以降) のストアド プロシージャの戻り値の型として、任意の複合型(ストアド プロシージャによって返される列とデータ型に一致するように生成されたクラス) を定義できます - 問題ありませんここ。

Entity Framework でのストアド プロシージャの使用に関する詳細な説明については、「Entity Framework のストアド プロシージャ」を参照してください。

于 2012-09-23T14:58:37.127 に答える