我想添加read uncommitted隔离级别。我知道可以使用sql语句。但是我想尝试使用transactionscope,我尝试了但没有在mysql常规日志上获得任何隔离语句。问题1 transactionscope类是否适用于mysql。如果是,那么如何验证。
fzsnzjdm1#
我想添加read uncommitted隔离级别。我知道可以使用sql语句。这样做的“标准”方法是使用 MySqlConnection.BeginTransaction 应用程序编程接口:
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应继承其隔离级别:
TransactionScope
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不同,它完全支持分布式事务。
1条答案
按热度按时间fzsnzjdm1#
我想添加read uncommitted隔离级别。我知道可以使用sql语句。
这样做的“标准”方法是使用
MySqlConnection.BeginTransaction
应用程序编程接口:transactionscope类与mysql一起工作吗
是的,mysql connector/net可以支持
TransactionScope
,但不适用于分布式事务。众所周知,connector/net不支持xa事务TransactionScope
.如果你想用
TransactionScope
,则mysql connector/net应继承其隔离级别:如果您需要支持真正的分布式事务
TransactionScope
,然后切换到mysqlconnector作为ado.net驱动程序。与connector/net不同,它完全支持分布式事务。