如何验证transactionscope与mysql一起工作?

368yc8dk  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(358)

我想添加read uncommitted隔离级别。我知道可以使用sql语句。但是我想尝试使用transactionscope,我尝试了但没有在mysql常规日志上获得任何隔离语句。问题1 transactionscope类是否适用于mysql。如果是,那么如何验证。

fzsnzjdm

fzsnzjdm1#

我想添加read uncommitted隔离级别。我知道可以使用sql语句。
这样做的“标准”方法是使用 MySqlConnection.BeginTransaction 应用程序编程接口:

using (var transaction = connection.BeginTransaction(IsolationLevel.ReadUncommitted))
{
    // do stuff
    transaction.Commit();
}

transactionscope类与mysql一起工作吗
是的,mysql connector/net可以支持 TransactionScope ,但不适用于分布式事务。众所周知,connector/net不支持xa事务 TransactionScope .
如果你想用 TransactionScope ,则mysql connector/net应继承其隔离级别:

var txOptions = new System.Transactions.TransactionOptions();
txOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;

using(var transaction = new TransactionScope(TransactionScopeOption.Required, txOptions))
using (var connection = new MySqlConnection("... connection string ..."))
{
    connection.Open();
    // ...
    transaction.Complete();
}

如果您需要支持真正的分布式事务 TransactionScope ,然后切换到mysqlconnector作为ado.net驱动程序。与connector/net不同,它完全支持分布式事务。

相关问题