MySQLでIQToolkitを使用すると、トランザクション内でLOCKING READを実行し、mysqlドキュメントに応じて、 "SELECT ..."を使用します。 FOR UPDATE "と表示されます。 しかし、LINQはデフォルトでこれをサポートしていないと思われます。ChangeConflictExceptionを処理することによって、同様の目標を達成することについてはthis threadが見つかりました。 MySQLでIQToolkit LINQプロバイダを使用して同じことを行う最善の方法は何ですか?MySQLでIQToolKitを使用する際にselect for updateを達成する方法
0
A
答えて
0
IQToolkitには、行ロックを要求する機能がありません。ただし、トランザクションを使用している場合は、トランザクションの分離レベルに応じて、トランザクション内で発生する読み取りの読み取りロックを取得する必要があります。
LINQ to SQLにはオプティミスティックな並行処理がサポートされているため、トランザクション内のデータを読み取らないことが期待されますが、変更を送信するとトランザクション内に入りますあなたの代わりにカバー)。楽観的な部分は、更新が送信されたときに発生します。データを読み込んだ後に行が変更された場合、それらの行の更新は失敗します。これにより、全体を中止するか、新しい読み込みなどで自動的にやり直すか、変更の競合例外の情報を使用して、変更内容をデータベースの変更とマージしてから再提出する方法が選択されます。ピック・アンド・チョイス・アプローチは複雑で、あなたが何をやっているのか分からない限り、おそらく「最初からすべてをやり直してください」アプローチを使うべきです。
IQToolkitには、「選択して選択して再送信する」アプローチを使用できる機能がありません。したがって、オプティミスティックな並行処理を試みると、更新が失敗した場合にすべてを再試行するのが最良です。悲観的な並行性を使用し、トランザクションの下に読み込みクエリを置くだけで、必要なロックが得られない場合は、IQueryableクエリプロバイダを構築するためのソースキットとサンプルとして、IQToolkitにその機能を自由に追加できます。
関連する問題
- 1. MySQLでSELECTを使用してUPDATEを使用する方法
- 2. Anormを使用したSELECT ... FOR UPDATE
- 3. MySQLクエリ - UPDATE内でSELECTを使用する
- 4. SELECT FOR XML文のASで列値を使用する方法
- 5. UPDATEクエリでSELECTの前にFROMの後にCASE文を使用する方法
- 6. MySQLとPHP:SELECT FOR UPDATEの使用
- 7. SELECTとUPDATEでMySQLのループを使用してテーブルをソート
- 8. Perl DBIを使用してOracleの「select for update」をタイムアウトさせるには
- 9. node.jsのselect文(MySQL)で変数を使用する方法は?
- 10. MySQLの 'insert'ステートメントで 'select'を使用する方法
- 11. PostgreSQLで "MySQLクロスデータベースリファレンス"を達成する方法
- 12. Mysql ProcecureでSyntaxを使用する際の2つの方法
- 13. 行を挿入する際に使用しない方法mysql
- 14. MYSQL SELECT ... FOR UPDATE動作していませんか?
- 15. MySQL phpmyadmin - SELECT FOR UPDATEが認識されない
- 16. MySqlでビューを作成するときにselect *およびconcatを使用する方法
- 17. XmlSerializerを使用してこれを達成する方法は?
- 18. Mysqlプロシージャ:SELECTおよびUPDATE
- 19. forループをmysql文で使用する
- 20. angular.jsでselectを使用して$ filterを使用する方法
- 21. OpenNMSでトポロジを達成する方法
- 22. mysqlクエリでSELECT内でSELECTを使用する
- 23. assertDictEqualを達成する方法値に適用される
- 24. テーブルを使わずにテーブルレイアウトを達成する方法は?
- 25. PHPでUPDATEコマンドを使用する際の問題
- 26. PostgreSQL 9.5でINSERT INTO SELECTとUPDATE UPDATEを行う方法は?
- 27. mySQLビューとUPDATEを使用してテーブルを変更する方法
- 28. sqlbuilderを使用してSELECTクエリを作成する方法は?
- 29. Mysql SELECT CASE WHENの使用方法
- 30. vs selectクエリを使用するmysqlトリガー