2017-10-27 11 views
0

T-SQLでは、挿入/更新レース条件を解決するために、WITH (UPDLOCK, SERIALIZABLE)を使用します。例:2つのセッションのスレッドが同じ主キーに挿入しよう:エンティティフレームワーク6レース条件挿入/更新

例:1は、最新バージョンの中で、これを適用しない方法

IF EXISTS(SELECT * 
      FROM dbo.Foo WITH (UPDLOCK, HOLDLOCK) 
      WHERE ID = @ID) 

C#ASPエンティティフレームワーク6 OLTP環境用のEF6? EF6で使用するキーワードは何ですか?

上記のインラインSQLを使用する代わりに、C#クラスオブジェクトを参照したいと思います。

おかげで、一般的なEFに

+0

https://stackoverflow.com/q/27002474/861716 –

+0

は、うまくいけば、エンティティフレームワーク6は、このメカニズム – AppleBook89

+0

いいえを持っており、それは今までにないでしょう。 –

答えて

1

は、クライアント側楽観的並行性制御を使用しています。この場合、存在チェックを行うために使用しているキーにプライマリキーまたはユニークインデックスがあり、初期チェックで既存のエンティティを検索するのと同じようにキー違反エラーが処理されます。

重複が稀であることが予想される場合は、最初のチェックを省略し、単に鍵違反エラーに頼ることもできます。 2014年にあった

デビッド

関連する問題