現在、データを読み取って更新が必要かどうかを判断し、更新をデータベースにプッシュするメソッドがあります(依存性注入)。この方法は非常に大きな打撃を受け、同時実行に関連するバグ、つまり、最初の更新の前に複数のスレッドがデータを読み取るため、複数の更新が見つかりました。
私はロックを使用してこれを解決しました、それは非常にうまく機能します。代わりにTransactionScopeを使用して同じことを行うにはどうすればよいですか?できますか?ロックのように別のスレッドをブロックしますか?さらに、ロックを使用して行っているように、特定の「ID」を「ロック」することはできますか(IDごとにロックするオブジェクトを格納する辞書を保持しています)?
私はEntityFramework5を使用していますが、リポジトリと作業単位のパターンによって隠されています。