teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2019/07/07 01:56

投稿

退会済みユーザー
answer CHANGED
@@ -15,4 +15,16 @@
15
15
 
16
16
  SQL Server の場合ですが、Visual Studio の TableAdapter 構成ウィザードを使って型付 DataSet + TableAdapter を作る場合、楽観的同時実行制御のコードを自動的に生成してくれるオプションがあります。
17
17
 
18
- ![イメージ説明](6f5e869a1c6ee0307ded7ff22ea50d9a.jpeg)
18
+ ![イメージ説明](6f5e869a1c6ee0307ded7ff22ea50d9a.jpeg)
19
+
20
+ **【追記2】**
21
+
22
+ Entity Framework の場合は以下のような方法があるそうです(こちらは未検証ですが)。
23
+
24
+ 楽観的同時実行制御 (Timestamp列あり)
25
+ [http://gushwell.ldblog.jp/archives/52440876.html](http://gushwell.ldblog.jp/archives/52440876.html)
26
+
27
+ 楽観的同時実行制御 (Timestamp列なし)
28
+ [http://gushwell.ldblog.jp/archives/52440877.html](http://gushwell.ldblog.jp/archives/52440877.html)
29
+
30
+ ちなみに、Visual Studio の TableAdapter 構成ウィザードを使って型付 DataSet + TableAdapter を作る場合、デザイナが Timestamp の有無を自動的に検出して対応するコードを生成してくれます。

1

追記

2019/07/07 01:56

投稿

退会済みユーザー
answer CHANGED
@@ -1,5 +1,18 @@
1
1
  質問に対する直接の答えではないですが・・・
2
2
 
3
- SQLite は触ったこともないので可能かどうか分かりませんが、C# コーディングで楽観的 (or 悲観的) 同時実行制御を実装するというのはいかがですか?
3
+ SQLite は触ったこともないので可能かどうか分かりませんが、C# コーディングで楽観的 (or 悲観的) 同時実行制御を実装するというのはいかがですか?
4
4
 
5
- 複数のユーザーが同時にアクセスして delete, update 操作を行うと DB の内容に不整合が出ることを懸念されての話ではないかと想像していますが、そうであれば同時実行制御の実装が選択肢に入ると思います。
5
+ 複数のユーザーが同時にアクセスして delete, update 操作を行うと DB の内容に不整合が出ることを懸念されての話ではないかと想像していますが、そうであれば同時実行制御の実装が選択肢に入ると思います。
6
+
7
+ **【追記】**
8
+
9
+ 同時実装制御が何だか不明という場合は以下の記事の「楽観的同時実行制御と悲観的同時実行制御」のセクションを見てください。
10
+
11
+ DB 設計者のための明解 ADO.NET 第 1 回
12
+ [https://docs.microsoft.com/ja-jp/previous-versions/cc482903(v=msdn.10)](https://docs.microsoft.com/ja-jp/previous-versions/cc482903(v=msdn.10))
13
+
14
+ ググれば他にもいろいろヒットすると思いますが、これが自分的に分かりやすいと思いましたので紹介しておきます。
15
+
16
+ SQL Server の場合ですが、Visual Studio の TableAdapter 構成ウィザードを使って型付 DataSet + TableAdapter を作る場合、楽観的同時実行制御のコードを自動的に生成してくれるオプションがあります。
17
+
18
+ ![イメージ説明](6f5e869a1c6ee0307ded7ff22ea50d9a.jpeg)