1、单库事务
单库事务是针一个db操作执行的事务,无论是 ISqlSugarClient和 SqlSugarClient 用法都一样
try
{
db.Ado.BeginTran();
db.Insertable( new Order() { .....}).ExecuteCommand();
db.Ado.CommitTran();
}
catch (Exception ex)
{
db.Ado.RollbackTran();
throw ex;
}
|
如果一个db就一个库,那么你也可以用多租户事务节约代码,因为2者在一个库的情况下作用一样
db.BeginTran(); //去掉了.ado
db.CommitTran(); //去掉了.ado
db.RollbackTran(); //去掉了.ado
//ISqlSugarClient 接口使用多租户事务 看文档2.2
|
2、多库事务(可跨库)
多数据库事务是SqlSugar独有的功能,稳定比CAP更强(CAP还有一层队列),在单个程序中可以很愉快的使用多库事务
SqlSugarClient或者SqlSugarSope 继承于2个接口 ,代码如下事物
SqlSugarClient : ISqlSugarClient, ITenant
|
多租户声明
SqlSugarClient db = new SqlSugarClient( new List<ConnectionConfig>(){
new ConnectionConfig(){ ConfigId= "0" , DbType=DbType.SqlServer,ConnectionString=..,IsAutoCloseConnection= true },
new ConnectionConfig(){ ConfigId= "1" , DbType=DbType.MySql,ConnectionString=..,IsAutoCloseConnection= true }
});
|
简单的说多租户事务和单库事务用法基本100%一致,唯一区别就是少了.Ado
db.Ado.BeginTran //单库
db.BeginTran //多库
|
2.1 SqlSugarClient事务
因为继承 ITenant 了可以直接使用 (老版本var mysql=db.GetConnection要写在事务外面)
//禁止使用 db.Ado.BeginTran,多租户是db.BeginTran
try
{
db.BeginTran();
db.GetConnection( "1" ).Insertable( new Order() { }).ExecuteCommand();
db.GetConnection( "0" ).Insertable( new Order() { }).ExecuteCommand();
db.CommitTran();
}
catch (Exception)
{
db.RollbackTran(); //数据回滚
throw ;
}
|
2.2 ISqlSugarClient事务
因为和ITenant没有继承关需要转换一下
db.AsTenant().BeginTran(); //低版本 (db as ITenant).BeginTran()
db.AsTenant().CommitTran();
db.AsTenant().RollbackTran();
|
原文地址:http://www.cnblogs.com/wugh8726254/p/16818336.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性