SqlSugar 多个上下文连接使用事务教程 - 跨库事务操作指南
在SqlSugar中,可以使用事务来同时操作多个上下文连接。以下是使用事务的步骤:\n\n1. 创建一个SqlSugarClient对象,并设置IsolationLevel为ReadCommitted,以确保事务隔离级别为读已提交。\n csharp\n var db1 = new SqlSugarClient(new ConnectionConfig\n {\n ConnectionString = "your_connection_string_1",\n DbType = DbType.SqlServer,\n IsAutoCloseConnection = true,\n IsShardSameThread = true,\n InitKeyType = InitKeyType.Attribute,\n IsolationLevel = IsolationLevel.ReadCommitted\n });\n\n var db2 = new SqlSugarClient(new ConnectionConfig\n {\n ConnectionString = "your_connection_string_2",\n DbType = DbType.SqlServer,\n IsAutoCloseConnection = true,\n IsShardSameThread = true,\n InitKeyType = InitKeyType.Attribute,\n IsolationLevel = IsolationLevel.ReadCommitted\n });\n \n\n2. 开启事务,并将多个上下文连接加入到事务中。\n csharp\n var tran = db1.Ado.UseTran(() =>\n {\n // 在事务中操作db1\n db1.Insert(new TestTable { Id = 1, Name = "Test1" });\n db1.Update<TestTable>(new { Name = "Test1-Updated" }, it => it.Id == 1);\n \n // 在事务中操作db2\n db2.Insert(new TestTable { Id = 2, Name = "Test2" });\n db2.Update<TestTable>(new { Name = "Test2-Updated" }, it => it.Id == 2);\n });\n \n\n3. 提交或回滚事务。\n csharp\n if (tran.IsSuccess)\n {\n // 提交事务\n tran.Commit();\n }\n else\n {\n // 回滚事务\n tran.RollBack();\n }\n \n\n需要注意的是,如果多个上下文连接使用的是不同的数据库,那么这些数据库必须支持分布式事务,否则事务将无法正常工作。
原文地址: https://www.cveoy.top/t/topic/p66F 著作权归作者所有。请勿转载和采集!