0

私は EF 4.1 を使用しており、アプリケーションのある時点で、エンティティから条件を満たすすべてのデータを次のように実行して読み取ります。

context.Entity.Where(<condition>)

次に、それらをループで繰り返し処理し、特定の状況ではそれらの一部を Dictionary に格納します (キー値はエンティティの ID で、値はオブジェクト全体です)。

その後、アプリの別のポイントで、ディクショナリに保存されているすべてのオブジェクトを読み取り、それらを更新します。

それらを更新した後、コンテキストで SaveChanges を実行します (コンテキストは、エンティティ全体を読み取るときと、アイテムがディクショナリに格納されたときに使用されたものと同じです。

したがって、この時点で、savechanges を実行すると、データがデータベースに送信され、正しく更新されるかどうかを知りたいと思います。変更されたオブジェクトがディクショナリから取得されたものであるかどうかわからず、EF が非常にインテリジェントであるかどうかもわかりません。データベースを更新する必要があることを知るために。

4

1 に答える 1

1

ディクショナリと EF コンテキストは、オブジェクトへの参照を保持します。コンテキストが破棄されない限り、変更を追跡できます。

つまり、エンティティをディクショナリ (またはリストまたはその他の収集手段) に配置しても、エンティティとそのコンテキストには影響しません。

于 2013-06-20T10:04:52.043 に答える