这与Nested Database transactions in C#。
有关我想要在事务中使用的集合中的对象使用SqlConnection.BeginTransaction方法实现它们自己的事务。
阅读此post之后,我不确定我是否可以将它们混合在一起。 我使用的是SQL Server 2005,每个对象都使用静态配置类的连接细节。
有人有这方面的经验吗?
以下是示例代码:
using(TransactionScope scope = new TransactionScope())
{
for (int i=0; i<=1000....)
{
SqlConnection con = new SqlConnection()
SqlCommand cmd = new SqlCommand("delete from ...", con);
try {
con.Open();
DbTransaction t = con.BeginTransaction();
cmd.ExecuteNonQuery();
...
cmd.CommandText = .... ;
cmd.ExecuteNonQuery();
t.Commit ...
}
catch {
t.Rollback ...
}
con.Close()
}
}
THX
答案 0 :(得分:5)
花了好几个小时配置MSDTC在两台机器上工作后,我终于到了可以测试代码的地步。
它似乎有用(有1个数据库)
上述问题可能对无法访问源代码的人有用,因此无法摆脱“遗留”事务系统,或者代码的事务部分未本地化,或者像我的情况一样,您不希望在生产环境中证明稳定的复杂代码过多,但您需要引入嵌套事务......
如果您有不同的经历,请告诉我。