gpt4 book ai didi

c# - 我可以混合使用 SqlConnection.BeginTransaction 和 TransactionScope 吗?

转载 作者:太空狗 更新时间:2023-10-29 20:29:38 25 4
gpt4 key购买 nike

这与 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()
}
}

谢谢

最佳答案

在花费数小时配置 MSDTC 以在两台机器上工作后,我终于可以测试代码了。

它似乎可以工作(使用 1 个数据库)

上述问题可能对无法访问源代码的人有用,因此无法摆脱“遗留”交易系统,或者如果代码的交易部分未本地化,或者像我的情况一样,您不想过多地处理在生产环境中被证明是稳定的复杂代码,但您需要引入嵌套事务...

如果您有不同的经历,请告诉我。

关于c# - 我可以混合使用 SqlConnection.BeginTransaction 和 TransactionScope 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com