2012-03-19 10 views
1

必須EF4エンティティは、それらを作成した同じスレッドによって保存されますか? 私は自分の変更を失うか、私のコードでObjectContextの例外がスローされます。必須EF4エンティティは、それらを作成した同じスレッドによって保存されますか?

私が求めている理由は、これが問題を引き起こす唯一の条件だと思われるからです。

この場合、少なくとも他のスレッドによって変更され、作成スレッドによって保存されますか?

答えて

2

ObjectContextクラスはスレッドセーフではありません(msdnの備考欄を参照)。 ObjectStateManagerもスレッドセーフではないため、異なるスレッドのコンテキストにが接続されているを変更することはお勧めできません。主スレッドは、他のスレッドがエンティティにアクセスしている場合にコンテキストを破棄し、それによって処分された例外をスローする可能性があります。

エンティティを切り離してから、他のスレッドでエンティティを変更してから再度エンティティを接続してみることができます。スレッドごとにコンテキストを使用することをお勧めします。

関連する問題