L2Sで複数のクエリを実行する必要があるたびに、TransactionScopeを使用して明示的にトランザクションを作成しています。今日私の同僚は、L2SがSubmitChangesレベルでそれをやっているので、トランザクションを手動で作成することは決してないと言いました。私は混乱していたので、テストするためのサンプルコードをいくつか作成しました。私がこれまでのところ理解したように、彼は正しいのです。 私の質問は、linqの初めからsqlに利用可能だったのですか、これはいくつかの.netバージョン/サービスパックに追加されましたか? ネットでは、L2Sと一緒にTransactionScopeを使用する方法のサンプルがたくさんあるので、これらの人々のすべてがそれを見逃している可能性はありませんか?linq to sql:トランザクションを明示的に作成する必要はありますか?
0
A
答えて
0
明示的なTransactionScopesは、単一のトランザクションで複数のクエリと複数の呼び出しを1つのトランザクション...にラップしたい場合は値を持ちますが、オブジェクトグラフを保存すると(DBに複数の挿入/更新文が生成されます) SaveChangesが呼び出されると、それらのステートメントは自動的にトランザクションにラップされます。
1
すべての変更を行い、SubmitChanges()
を一度呼び出すと、トランザクションが自動的に作成されます。
TransactionScope
を気にする必要があるのは、SubmitChanges()
に複数の電話をかけたり、複数のコンテキストで動作するトランザクションが必要な場合だけです。
関連する問題
- 1. Shortオブジェクトを明示的に作成する必要はありませんか?
- 2. LINQ To SQLの使用を開始する必要がありますか?
- 3. 明示的なLINQ-to-SQL(C#)では順序が重要ですか?
- 4. LINQ to SQL - ローカルmdfファイルにsqlserver 2008をダウンロードする必要があります
- 5. linq to sql left join、右テーブルのnullをチェックする必要があります
- 6. 私はLinq-to-SQL、vb.netに動的にストアドプロシージャ名を渡す必要があります
- 7. Hibernateでトランザクションを明示的に開始および終了する必要がありますか?
- 8. LINQ to SQLクエリを作成するヘルプ
- 9. キャメルでSQLステートメントを動的に作成する必要があります。Talend
- 10. SQLをLINQに変換する必要があります
- 11. LINQ to SQLのプロジェクトにDBファイルを追加する必要はありますか?
- 12. clSetEventCallback、明示的にイベントを保持する必要がありますか?
- 13. 明示的に関数をバインドする必要がありますか?
- 14. C#LINQターゲットは静的である必要があります
- 15. linq-to-sqlのcommandtextを変更するときに、接続を終了する必要がありますか?
- 16. Sql to linq(LinqでSqlクエリを作成する方法)
- 17. なぜ明示的にスレッドに参加する必要がありますか?
- 18. 明示的にRESULT_CANCELEDに設定する必要がありますか?
- 19. エラー注釈プロセッサを明示的に宣言する必要があります
- 20. linq to sqlにはwith tiesオプションがありますか?
- 21. Linq to SQLにはonChangingがありますか?
- 22. SQLサーバーで動的ピボットを作成する必要があります
- 23. Linq-To-SQLでストアドプロシージャを実行した後にSubmitChangesを実行する必要がありますか?
- 24. linq-to-sqlではどのような関係を選択する必要がありますか?
- 25. ビジネスロジックオブジェクトは、LINQ-to-SQLデータオブジェクトの知識が必要ですか?
- 26. インターフェイスメンバーを明示的にまたは暗黙的に実装する必要がありますか?
- 27. オブジェクトリテラル - 別のキーを明示的に指定する必要があります
- 28. DataTableを明示的に処理する必要があります
- 29. 'fb:app_id'プロパティを明示的に指定する必要があります。
- 30. プリズム:RaiseCanExecuteChanged()を明示的に呼び出す必要があります
L2Sは、初期のベータ版以降にSubmitChangesのトランザクションを作成しました。これは、例外が発生したときにアクションをロールバックする機能を有効にします( 'SubmitChanges(ConflictMode.ContinueOnConflict)'を参照)。 –