LINQ to SQLにおけるTransactionScopeとTransactionの比較
2023-09-28 05:19:04
質問
LINQ to SQLの古典的なトランザクションパターンは、どのような違いがありますか。
using(var context = Domain.Instance.GetContext())
{
try
{
context.Connection.Open();
context.Transaction = context.Connection.BeginTransaction();
/*code*/
context.Transaction.Commit();
}
catch
{
context.Transaction.Rollback();
}
}
vs TransactionScopeオブジェクト
using (var context = Domain.Instance.GetContext())
using (var scope = new TransactionScope())
{
try
{
/*code*/
scope.Complete();
}
catch
{
}
}
どのように解決するのですか?
Linq2SQLは暗黙のうちにトランザクションを使用します。 すべての更新が1つのSubmit内で行われる場合、自分でトランザクションを処理する必要はないかもしれません。
ドキュメントより(強調)。
SubmitChanges を呼び出すと、LINQ to SQL はその呼び出しが Transaction のスコープ内にあるかどうか、あるいは Transaction プロパティ (IDbTransaction) がユーザーが開始したローカルトランザクションに設定されているかどうかを確認します。 もしどちらのトランザクションも見つからなかったら、LINQ to SQL はローカルトランザクション (IDbTransaction) を開始し、生成された SQL コマンドを実行するためにそれを使用します。 すべてのSQLコマンドが正常に完了すると、LINQ to SQLはローカルトランザクションをコミットし、戻ります。
関連
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] SelectとSelectManyの違い
-
[解決済み] LINQのGroup by
-
[解決済み] Entity FrameworkとLINQ to SQLの比較
-
[解決済み] LINQ .Any VS .Exists - 違いは何ですか?
-
[解決済み] LinqでSQL Like %を行うには?
-
[解決済み] Linqクエリの結果を辞書に変換する
-
[解決済み】一部のマシンでTransactionScopeが自動的にMSDTCにエスカレートする?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】Nullableオブジェクトは値を持たなければならない?