You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.7 KiB
C#

using SqlSugar;
#region << 版 本 注 释 >>
/*
* c2024
* CLR 4.0.30319.42000
*
*
*
*
*
*
*/
#endregion << 版 本 注 释 >>
namespace DS.Module.SqlSugar.aop
{
public class SqlSugarAop
{
private readonly ISqlSugarClient _tenantDb;
public SqlSugarAop(ISqlSugarClient tenantDb)
{
_tenantDb = tenantDb;
}
public KeyValuePair<string, SugarParameter[]> OnExecutingChangeSql(string sql, SugarParameter[] pars)
{
// 在这里,你可以从另一个数据库中加载租户信息,然后修改 SQL 语句。
// 例如,你可以添加一个 WHERE 子句来过滤租户数据。
// 假设你的租户信息存储在一个名为 Tenant 的表中
//var tenantId = ...; // 从某处获取当前租户 ID
//var tenant = _tenantDb.Queryable<Tenant>().InSingle(tenantId);
//// 然后,你可以修改 SQL 语句,添加一个 WHERE 子句来过滤租户数据
//sql += $" WHERE TenantId = {tenant.Id}";
return new KeyValuePair<string, SugarParameter[]>(sql, pars);
}
public void OnLogExecuting(string sql, SugarParameter[] pars)
{
// 在这里,你可以记录 SQL 语句和参数。
}
public void OnLogExecuted(string sql, SugarParameter[] pars)
{
// 在这里,你可以记录 SQL 语句和参数。
}
public void OnError(Exception ex)
{
// 在这里,你可以处理数据库操作的异常。
}
public void OnDiffLogEvent(DiffLogModel diffLogModel)
{
// 在这里,你可以处理差异日志事件。
}
}
}