using System.Reflection;
using SqlSugar;
using Volo.Abp.DependencyInjection;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.SqlSugarCore;
///
/// SqlSugar数据库上下文基类
///
public abstract class SqlSugarDbContext : ISqlSugarDbContextDependencies
{
///
/// 服务提供者
///
protected IAbpLazyServiceProvider LazyServiceProvider { get; }
///
/// 数据库客户端实例
///
protected ISqlSugarClient SqlSugarClient { get; private set; }
///
/// 执行顺序
///
public virtual int ExecutionOrder => 0;
protected SqlSugarDbContext(IAbpLazyServiceProvider lazyServiceProvider)
{
LazyServiceProvider = lazyServiceProvider;
}
///
/// 配置SqlSugar客户端
///
public virtual void OnSqlSugarClientConfig(ISqlSugarClient sqlSugarClient)
{
SqlSugarClient = sqlSugarClient;
CustomDataFilter(sqlSugarClient);
}
///
/// 自定义数据过滤器
///
protected virtual void CustomDataFilter(ISqlSugarClient sqlSugarClient)
{
}
///
/// 数据执行后事件
///
public virtual void DataExecuted(object oldValue, DataAfterModel entityInfo)
{
}
///
/// 数据执行前事件
///
public virtual void DataExecuting(object oldValue, DataFilterModel entityInfo)
{
}
///
/// SQL执行前事件
///
public virtual void OnLogExecuting(string sql, SugarParameter[] pars)
{
}
///
/// SQL执行后事件
///
public virtual void OnLogExecuted(string sql, SugarParameter[] pars)
{
}
///
/// 实体服务配置
///
public virtual void EntityService(PropertyInfo propertyInfo, EntityColumnInfo entityColumnInfo)
{
}
}