using SqlSugar;
namespace ServiceCenter.SqlSugars
{
///
/// ORM
///
public class SqlSugarHelper
{
///
/// 数据库连接
///
private static SqlSugarScope? _Db { get; set; } = null;
///
/// 默认数据库连接Key
///
private static string _Default { get; set; } = "";
///
/// Dlog数据库连接Key
///
private static string _Dlog { get; set; } = "";
///
/// 设置数据库连接Key
///
/// 默认多租户ID
public static void SetDefault(string configId)
{
_Default = configId;
}
///
/// 设置 Dlog数据库连接Key
///
/// 多租户Dlog ID
public static void SetDlog(string configId)
{
_Dlog = configId;
}
///
/// 默认数据库连接Key
///
public SqlSugarScopeProvider Default
{
get
{
if (_Default == "") throw new Exception("请调用[SqlSugarHelper.SetDefault]方法设置默认数据库连接");
if (_Db == null) throw new Exception("请调用[SqlSugarHelper.SetDb]方法设置设置数据库连接");
return _Db.GetConnectionScope(_Default);
}
}
///
/// Dlog数据库连接Key
///
public SqlSugarScopeProvider Dlog
{
get
{
if (_Dlog == "") throw new Exception("请调用[SqlSugarHelper.SetDlog]方法设置默认数据库连接");
if (_Db == null) throw new Exception("请调用[SqlSugarHelper.SetDb]方法设置设置数据库连接");
return _Db.GetConnectionScope(_Dlog);
}
}
///
/// 设置数据库连接
///
///
public static void SetDb(SqlSugarScope sqlSugarScope)
{
_Db = sqlSugarScope;
}
///
/// 数据库连接
/// 注意需要
///
public SqlSugarScope Connect
{
get
{
return _Db ?? throw new Exception("请调用[SqlSugarHelper.SetDb]方法设置设置数据库连接");
}
}
///
/// 执行事务
///
///
///
public static void Do(Action act)
{
if (_Db == null) throw new Exception("请调用[SqlSugarHelper.SetDb]方法设置设置数据库连接");
var db = new SqlSugarHelper();
try
{
db.Connect.BeginTran();//开始事务
act(db);//执行委托
db.Connect.CommitTran();//提交事务
}
catch (Exception ex)
{
db.Connect.RollbackTran();//回滚事务
throw new Exception($"事务回滚记录:{ex.Message}:{ex.StackTrace}");
}
}
}
}