-1

SQL で 2 つのテーブルがあるとします。

ここに画像の説明を入力

私の EDMX には、テーブル A のエンティティ タイプに対応する列を返す SPROC の関数インポートがあります。

SPROC で、テーブル B から対応するデータを選択した場合、エンティティ フレームワーク (4.1) は、ABName を要求したときに、後でデータベースへの遅延フェッチを行わずにそのデータを関連付けることを認識しますか?

4

1 に答える 1

1

.NET 4.0 の関数インポートでは、単一のテーブルからのみデータを選択できます。プリンシパル エンティティと依存エンティティの両方を読み込むには、2 つの個別のストアド プロシージャが必要です。EF 4.0 の複数の結果セットは、一部の拡張機能によってのみサポートされていました。

.NET 4.5 は、複数の結果セットを持つストアド プロシージャもサポートしていますが、少なくとも VS 2012 RTM では、この機能はデザイナーでサポートされていませんでした (EDMX の XML で手動で行う必要がありました)。VS 2012 November Updateで修正されているのか、まだ試していません。

プリンシパル テーブルと従属テーブルの両方の結果セットを返すストアド プロシージャがあれば、EF はリレーションが正しく設定されていることを確認し、いつでも遅延読み込みをオフにして、データベースへの追加のクエリがないことを確認できます。

于 2012-12-03T10:58:18.283 に答える