gpt4 book ai didi

c# - 如何验证 TransactionScope 是否适用于 MySQL?

转载 作者:行者123 更新时间:2023-11-29 10:07:21 24 4
gpt4 key购买 nike

我想添加读未提交隔离级别。我知道可以使用 SQL 语句来实现。但我想尝试使用 TransactionScope,但我尝试了但没有在 MySQL 常规日志上获得任何隔离语句。问题1 transactionscope 类是否可以与 MySQL 一起使用。如果是的话如何验证。

最佳答案

I want to add read uncommitted isolation level.i know it is possible to do with SQL statement.

执行此操作的“标准”方法是使用 MySqlConnection.BeginTransaction API:

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

does transactionscope class work with MySQL

是的,MySQL Connector/NET 可以支持 TransactionScope,但不支持分布式事务。这是known issue Connector/NET 不支持带有 TransactionScope 的 XA 事务。

如果你想使用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 不同,它 fully supports distributed transactions .

关于c# - 如何验证 TransactionScope 是否适用于 MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680054/

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