2

非常に経験豊富なEFの人ではないので、これについて専門家に尋ねると思いました.

「申請者」というエンティティがあります。申請者は、多くの「申請」を持つことができます。

申請者を検索する典型的な方法があります。申請者が存在する場合は更新され、存在しない場合は追加されます。どちらの場合も、同時に新しいアプリケーションが追加されます。

これを行うには2つの方法があります:

1) 申請者を作成または更新し、その直後に個別に申請書を作成します。2) 申請者を作成または更新しますが、アプリケーションを (申請者の) アプリケーション コレクションに追加します。

オプション 2 に関する質問です。データベースから Applicant を取得し、それが存在する場合、新しい Application をそのコレクションに追加します。Applicant を更新すると、そのコレクション内の各アイテムが更新されますか? それとも、新しいアプリケーションを 1 つだけ追加したことを認識できるほどインテリジェントですか? つまり、データベースへの不必要な往復を行っているのでしょうか?

それが理にかなっていることを願っています。

EF 4.3.1 を使用します。

前もって感謝します。

4

1 に答える 1

1

いいえ、コレクション内のすべての既存のアイテムを更新するわけではありません。コレクションに追加した新しいアイテムのみが送信されます。

EF が送信している SQL クエリをよりよく把握するには、ORM プロファイラーを使用して確認することをお勧めします。

オプションはEFProfまたはOrmProfilerです

または、有料オプションをスキップしたい場合は、linqpad または Sql Server Profiler ツールを使用できます (同じことを実現する非高速バージョンの SQL Server がある場合)。

于 2013-02-25T11:18:10.707 に答える