C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■85914 / )  Re[10]: LINQ to SQL:
□投稿者/ 魔界の仮面弁士 (1488回)-(2017/12/01(Fri) 10:04:29)
No85913 (ぬる さん) に返信
> 以下の通り、ExecuteCommandの戻り値で確認しました。

別のアプリなどから Id = 1 の行を取得してみて、
  取得できる or 何も返されない or ロック状態になる
で判断する方法もありますね。

最初のコードは、Transaction オブジェクトを
Commit していないので、サーバーには反映されていないはず。


でもって、分散トランザクション コーディネータ (MS DTC と OraMTS)が
インストール済みであれば、System.Transactions.dll を参照追加して、
TransactionScope で囲む手も使えるかと思います。
手元の環境には DTC を入れてないので未確認ですが。

(TransactionScope を使う場合、Using/using ブロックの外側で
 Connection を開いた場合、トランザクションには参加されず
 即時コミットされることになるので注意)


'VB
Using tx As New TransactionScope()
 Using db1 As New SomeDataContext(何某)
 End Using
 Using db2 As New SomeDataContext(何某)
 End Using
 tx.Complete()
End Using


// C#
using (var tx = new TransactionScope())
{
 using (var db1 = new SomeDataContext(何某))
 {
 }
 using (var db1 = new SomeDataContext(何某))
 {
 }
 tx.Complete();
}
返信 編集キー/


管理者用

- Child Tree -