gpt4 book ai didi

c# - 具有嵌套方法的 TransactionScope - MySQL

转载 作者:行者123 更新时间:2023-11-29 01:03:38 25 4
gpt4 key购买 nike

MYSQL 是否支持不将 MySqlConnection 对象作为参数传递的 TransactionScope?或者它只适用于 MS SQL 2008 及更高版本?

例如:

public void Method()
{
using (var scope = new System.Transactions.TransactionScope())
{
Delete();
Insert();
Update();

scope.Complete();
}
}

public void Update()
{
using(MySqlConnection conn = new MySqlConnection())
{
// Update something in the Database
}
}

public void Insert()
{
using(MySqlConnection conn = new MySqlConnection())
{
// Insert something in the Database
}
}

public void Delete()
{
using(MySqlConnection conn = new MySqlConnection())
{
// Delete something from Database
}
}

还是应该将 MySqlConnection conn 对象作为参数来完成?

public void Method()
{
using (var scope = new System.Transactions.TransactionScope())
{
using(MySqlConnection conn = new MySqlConnection())
{
Delete(conn);
Insert(conn);
Update(conn);
}

scope.Complete();
}
}

public void Update(MysqlConnection conn)
{
// Update something in the Database
}

public void Insert(MysqlConnection conn)
{
// Insert something in the Database
}

public void Delete(MysqlConnection conn)
{
// Delete something from Database
}

最佳答案

您不能在单个 TransactionScope 中创建多个 MySqlConnection 对象:bug 50773 .

解决方案是升级到 https://github.com/mysql-net/MySqlConnector哪个does support TransactionScope .

关于c# - 具有嵌套方法的 TransactionScope - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718284/

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