From 5d2d269f112dc660abe0f70d50f5344bfa4ff78b Mon Sep 17 00:00:00 2001 From: chenchun Date: Tue, 19 Nov 2024 11:53:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E5=A4=9Adb=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=90=AD=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DefaultSqlSugarDbContext.cs | 207 ++++++++++++++++++ .../ISqlSugarDbContextDependencies.cs | 11 +- .../SqlSugarDbConnectionCreator.cs | 123 ----------- .../SqlSugarDbContext.cs | 40 ++++ .../SqlSugarDbContextFactory.cs | 22 +- .../SqlsugarCoreExtensions.cs | 17 +- .../YiFrameworkRbacSqlSugarCoreModule.cs | 2 +- ...DbContextFactory.cs => YiRbacDbContext.cs} | 17 +- .../YiAbpSqlSugarCoreModule.cs | 2 +- .../{YiDbContextFactory.cs => YiDbContext.cs} | 5 +- 10 files changed, 278 insertions(+), 168 deletions(-) create mode 100644 Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/DefaultSqlSugarDbContext.cs delete mode 100644 Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbConnectionCreator.cs create mode 100644 Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs rename Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/{YiRbacDbContextFactory.cs => YiRbacDbContext.cs} (90%) rename Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/{YiDbContextFactory.cs => YiDbContext.cs} (52%) diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/DefaultSqlSugarDbContext.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/DefaultSqlSugarDbContext.cs new file mode 100644 index 00000000..eadefe24 --- /dev/null +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/DefaultSqlSugarDbContext.cs @@ -0,0 +1,207 @@ +using System.Collections; +using System.Reflection; +using System.Text; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using SqlSugar; +using Volo.Abp.Auditing; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Entities.Events; +using Volo.Abp.Guids; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Users; +using Yi.Framework.SqlSugarCore.Abstractions; + +namespace Yi.Framework.SqlSugarCore; + +public class DefaultSqlSugarDbContext : SqlSugarDbContext +{ + + protected DbConnOptions Options => LazyServiceProvider.LazyGetRequiredService>().Value; + protected ICurrentUser CurrentUser => LazyServiceProvider.GetRequiredService(); + protected IGuidGenerator GuidGenerator => LazyServiceProvider.LazyGetRequiredService(); + protected ILoggerFactory Logger => LazyServiceProvider.LazyGetRequiredService(); + protected ICurrentTenant CurrentTenant => LazyServiceProvider.LazyGetRequiredService(); + protected IDataFilter DataFilter => LazyServiceProvider.LazyGetRequiredService(); + protected virtual bool IsMultiTenantFilterEnabled => DataFilter?.IsEnabled() ?? false; + protected virtual bool IsSoftDeleteFilterEnabled => DataFilter?.IsEnabled() ?? false; + + protected IEntityChangeEventHelper EntityChangeEventHelper => + LazyServiceProvider.LazyGetService(NullEntityChangeEventHelper.Instance); + + protected override void CustomDataFilter(ISqlSugarClient sqlSugarClient) + { + if (IsSoftDeleteFilterEnabled) + { + sqlSugarClient.QueryFilter.AddTableFilter(u => u.IsDeleted == false); + } + + if (IsMultiTenantFilterEnabled) + { + //表达式里只能有具体值,不能运算 + var expressionCurrentTenant = CurrentTenant.Id ?? null; + sqlSugarClient.QueryFilter.AddTableFilter(u => u.TenantId == expressionCurrentTenant); + } + } + + public override void DataExecuting(object oldValue, DataFilterModel entityInfo) + { + //审计日志 + switch (entityInfo.OperationType) + { + case DataFilterType.UpdateByObject: + + if (entityInfo.PropertyName.Equals(nameof(IAuditedObject.LastModificationTime))) + { + if (!DateTime.MinValue.Equals(oldValue)) + { + entityInfo.SetValue(DateTime.Now); + } + } + else if (entityInfo.PropertyName.Equals(nameof(IAuditedObject.LastModifierId))) + { + if (typeof(Guid?) == entityInfo.EntityColumnInfo.PropertyInfo.PropertyType) + { + if (CurrentUser.Id != null) + { + entityInfo.SetValue(CurrentUser.Id); + } + } + } + + break; + case DataFilterType.InsertByObject: + + if (entityInfo.PropertyName.Equals(nameof(IEntity.Id))) + { + //类型为guid + if (typeof(Guid) == entityInfo.EntityColumnInfo.PropertyInfo.PropertyType) + { + //主键为空或者为默认最小值 + if (Guid.Empty.Equals(oldValue)) + { + entityInfo.SetValue(GuidGenerator.Create()); + } + } + } + + else if (entityInfo.PropertyName.Equals(nameof(IAuditedObject.CreationTime))) + { + //为空或者为默认最小值 + if (DateTime.MinValue.Equals(oldValue)) + { + entityInfo.SetValue(DateTime.Now); + } + } + else if (entityInfo.PropertyName.Equals(nameof(IAuditedObject.CreatorId))) + { + //类型为guid + if (typeof(Guid?) == entityInfo.EntityColumnInfo.PropertyInfo.PropertyType) + { + if (CurrentUser.Id is not null) + { + entityInfo.SetValue(CurrentUser.Id); + } + } + } + + else if (entityInfo.PropertyName.Equals(nameof(IMultiTenant.TenantId))) + { + if (CurrentTenant.Id is not null) + { + entityInfo.SetValue(CurrentTenant.Id); + } + } + + break; + } + + + //领域事件 + switch (entityInfo.OperationType) + { + case DataFilterType.InsertByObject: + if (entityInfo.PropertyName == nameof(IEntity.Id)) + { + EntityChangeEventHelper.PublishEntityCreatedEvent(entityInfo.EntityValue); + } + + break; + case DataFilterType.UpdateByObject: + if (entityInfo.PropertyName == nameof(IEntity.Id)) + { + //软删除,发布的是删除事件 + if (entityInfo.EntityValue is ISoftDelete softDelete) + { + if (softDelete.IsDeleted == true) + { + EntityChangeEventHelper.PublishEntityDeletedEvent(entityInfo.EntityValue); + } + } + else + { + EntityChangeEventHelper.PublishEntityUpdatedEvent(entityInfo.EntityValue); + } + } + + break; + case DataFilterType.DeleteByObject: + if (entityInfo.PropertyName == nameof(IEntity.Id)) + { + //这里sqlsugar有个特殊,删除会返回批量的结果 + if (entityInfo.EntityValue is IEnumerable entityValues) + { + foreach (var entityValue in entityValues) + { + EntityChangeEventHelper.PublishEntityDeletedEvent(entityValue); + } + } + } + + break; + } + } + + public override void OnLogExecuting(string sql, SugarParameter[] pars) + { + if (Options.EnabledSqlLog) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine(); + sb.AppendLine("==========Yi-SQL执行:=========="); + sb.AppendLine(UtilMethods.GetSqlString(DbType.SqlServer, sql, pars)); + sb.AppendLine("==============================="); + Logger.CreateLogger().LogDebug(sb.ToString()); + } + } + + public override void OnLogExecuted(string sql, SugarParameter[] pars) + { + if (Options.EnabledSqlLog) + { + var sqllog = $"=========Yi-SQL耗时{SqlSugarClient.Ado.SqlExecutionTime.TotalMilliseconds}毫秒====="; + Logger.CreateLogger().LogDebug(sqllog.ToString()); + } + } + + public override void EntityService(PropertyInfo propertyInfo, EntityColumnInfo entityColumnInfo) + { + if (propertyInfo.Name == nameof(IHasConcurrencyStamp.ConcurrencyStamp)) //带版本号并发更新 + { + entityColumnInfo.IsEnableUpdateVersionValidation = true; + } + + if (propertyInfo.PropertyType == typeof(ExtraPropertyDictionary)) + { + entityColumnInfo.IsIgnore = true; + } + + if (propertyInfo.Name == nameof(Entity.Id)) + { + entityColumnInfo.IsPrimarykey = true; + } + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/ISqlSugarDbContextDependencies.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/ISqlSugarDbContextDependencies.cs index f3826abe..46c973a4 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/ISqlSugarDbContextDependencies.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/ISqlSugarDbContextDependencies.cs @@ -5,13 +5,12 @@ namespace Yi.Framework.SqlSugarCore; public interface ISqlSugarDbContextDependencies { - void OnSqlSugarClientConfig(ISqlSugarClient client); + void OnSqlSugarClientConfig(ISqlSugarClient sqlSugarClient); + void DataExecuted(object oldValue, DataAfterModel entityInfo); + void DataExecuting(object oldValue, DataFilterModel entityInfo); - void DataExecuted(object obj, DataAfterModel dataAfterModel); - void DataExecuting(object obj, DataFilterModel dataAfterModel); - - void OnLogExecuting(string str, SugarParameter[] parameters); - void OnLogExecuted(string str, SugarParameter[] parameters); + void OnLogExecuting(string sql, SugarParameter[] pars); + void OnLogExecuted(string sql, SugarParameter[] pars); void EntityService(PropertyInfo propertyInfo, EntityColumnInfo entityColumnInfo); } \ No newline at end of file diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbConnectionCreator.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbConnectionCreator.cs deleted file mode 100644 index d62172df..00000000 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbConnectionCreator.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System.Reflection; -using Microsoft.Extensions.Options; -using SqlSugar; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Yi.Framework.SqlSugarCore.Abstractions; - -namespace Yi.Framework.SqlSugarCore -{ - - public class SqlSugarDbConnectionCreator: ISqlSugarDbConnectionCreator,ITransientDependency - { - public SqlSugarDbConnectionCreator(IOptions options) - { - Options = options.Value; - } - public DbConnOptions Options { get; } - - public void SetDbAop(ISqlSugarClient currentDb) - { - currentDb.Aop.OnLogExecuting = this.OnLogExecuting; - currentDb.Aop.OnLogExecuted = this.OnLogExecuted; - currentDb.Aop.DataExecuting = this.DataExecuting; - currentDb.Aop.DataExecuted = this.DataExecuted; - OnSqlSugarClientConfig(currentDb); - } - - - - public ConnectionConfig Build(Action? action=null) - { - var dbConnOptions = Options; - #region 组装options - if (dbConnOptions.DbType is null) - { - throw new ArgumentException("DbType配置为空"); - } - var slavaConFig = new List(); - if (dbConnOptions.EnabledReadWrite) - { - if (dbConnOptions.ReadUrl is null) - { - throw new ArgumentException("读写分离为空"); - } - - var readCon = dbConnOptions.ReadUrl; - - readCon.ForEach(s => - { - //如果是动态saas分库,这里的连接串都不能写死,需要动态添加,这里只配置共享库的连接 - slavaConFig.Add(new SlaveConnectionConfig() { ConnectionString = s }); - }); - } - #endregion - - #region 组装连接config - var connectionConfig = new ConnectionConfig() - { - ConfigId= ConnectionStrings.DefaultConnectionStringName, - DbType = dbConnOptions.DbType ?? DbType.Sqlite, - ConnectionString = dbConnOptions.Url, - IsAutoCloseConnection = true, - SlaveConnectionConfigs = slavaConFig, - //设置codefirst非空值判断 - ConfigureExternalServices = new ConfigureExternalServices - { - // 处理表 - EntityNameService = (type, entity) => - { - if (dbConnOptions.EnableUnderLine && !entity.DbTableName.Contains('_')) - entity.DbTableName = UtilMethods.ToUnderLine(entity.DbTableName);// 驼峰转下划线 - }, - EntityService = (c, p) => - { - if (new NullabilityInfoContext() - .Create(c).WriteState is NullabilityState.Nullable) - { - p.IsNullable = true; - } - - if (dbConnOptions.EnableUnderLine && !p.IsIgnore && !p.DbColumnName.Contains('_')) - p.DbColumnName = UtilMethods.ToUnderLine(p.DbColumnName);// 驼峰转下划线 - - EntityService(c, p); - } - }, - //这里多租户有个坑,无效的 - AopEvents = new AopEvents - { - DataExecuted = DataExecuted, - DataExecuting = DataExecuting, - OnLogExecuted = OnLogExecuted, - OnLogExecuting = OnLogExecuting - } - - }; - - if (action is not null) - { - action.Invoke(connectionConfig); - } - #endregion - return connectionConfig; - } - [DisablePropertyInjection] - public Action OnSqlSugarClientConfig { get; set; } - - [DisablePropertyInjection] - public Action DataExecuted { get; set; } - - [DisablePropertyInjection] - public Action DataExecuting { get; set; } - - [DisablePropertyInjection] - public Action OnLogExecuting { get; set; } - - [DisablePropertyInjection] - public Action OnLogExecuted { get; set; } - - [DisablePropertyInjection] - public Action EntityService { get; set; } - } -} diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs new file mode 100644 index 00000000..f2addb68 --- /dev/null +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs @@ -0,0 +1,40 @@ +using System.Reflection; +using SqlSugar; +using Volo.Abp.DependencyInjection; + +namespace Yi.Framework.SqlSugarCore; + +public abstract class SqlSugarDbContext : ISqlSugarDbContextDependencies +{ + //属性注入 + public IAbpLazyServiceProvider LazyServiceProvider { get; set; } + protected ISqlSugarClient SqlSugarClient { get;private set; } + public 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) + { + } + + public virtual void OnLogExecuting(string sql, SugarParameter[] pars) + { + } + + public virtual void OnLogExecuted(string sql, SugarParameter[] pars) + { + } + + public virtual void EntityService(PropertyInfo propertyInfo, EntityColumnInfo entityColumnInfo) + { + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs index 8e5cc37e..e1ff125e 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs @@ -17,13 +17,9 @@ namespace Yi.Framework.SqlSugarCore /// SqlSugar 客户端 /// public ISqlSugarClient SqlSugarClient { get; private set; } - - protected ICurrentUser CurrentUser => LazyServiceProvider.GetRequiredService(); private IAbpLazyServiceProvider LazyServiceProvider { get; } private ICurrentTenant CurrentTenant => LazyServiceProvider.LazyGetRequiredService(); - protected IDataFilter DataFilter => LazyServiceProvider.LazyGetRequiredService(); - public DbConnOptions Options => LazyServiceProvider.LazyGetRequiredService>().Value; private ISerializeService SerializeService => LazyServiceProvider.LazyGetRequiredService(); @@ -34,18 +30,17 @@ namespace Yi.Framework.SqlSugarCore { LazyServiceProvider = lazyServiceProvider; - //获取连接配置 + //获取连接配置操作,需要进行缓存 var connectionConfig = BuildConnectionConfig(action: options => { options.ConnectionString = GetCurrentConnectionString(); options.DbType = GetCurrentDbType(); }); SqlSugarClient = new SqlSugarClient(connectionConfig); - - //替换默认序列化器 - SqlSugarClient.CurrentConnectionConfig.ConfigureExternalServices.SerializeService = SerializeService; - + //生命周期,以下都可以直接使用sqlsugardb了 + // Aop及多租户连接字符串和类型,需要单独设置 + // Aop操作需要进行缓存 SetDbAop(SqlSugarClient); } @@ -55,6 +50,9 @@ namespace Yi.Framework.SqlSugarCore /// protected virtual void SetDbAop(ISqlSugarClient sqlSugarClient) { + //替换默认序列化器 + sqlSugarClient.CurrentConnectionConfig.ConfigureExternalServices.SerializeService = SerializeService; + //将所有,ISqlSugarDbContextDependencies进行累加 Action onLogExecuting=null; Action onLogExecuted=null; @@ -71,13 +69,15 @@ namespace Yi.Framework.SqlSugarCore onSqlSugarClientConfig += dependency.OnSqlSugarClientConfig; } - + //最先存放db操作 + onSqlSugarClientConfig(sqlSugarClient); + sqlSugarClient.Aop.OnLogExecuting = onLogExecuting; sqlSugarClient.Aop.OnLogExecuted =onLogExecuted; sqlSugarClient.Aop.DataExecuting = dataExecuting; sqlSugarClient.Aop.DataExecuted = dataExecuted; - onSqlSugarClientConfig(sqlSugarClient); + } diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlsugarCoreExtensions.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlsugarCoreExtensions.cs index cdafb998..d8fa89fc 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlsugarCoreExtensions.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlsugarCoreExtensions.cs @@ -11,26 +11,19 @@ namespace Yi.Framework.SqlSugarCore { public static class SqlsugarCoreExtensions { - public static IServiceCollection AddYiDbContext(this IServiceCollection service, ServiceLifetime serviceLifetime = ServiceLifetime.Transient) where DbContext : class, ISqlSugarDbContext + public static IServiceCollection AddYiDbContext(this IServiceCollection service, ServiceLifetime serviceLifetime = ServiceLifetime.Transient) where TDbContext : class, ISqlSugarDbContextDependencies { - service.Replace(new ServiceDescriptor(typeof(ISqlSugarDbContext), typeof(DbContext), serviceLifetime)); + service.Add(new ServiceDescriptor(typeof(ISqlSugarDbContextDependencies), typeof(TDbContext), serviceLifetime)); return service; } - public static IServiceCollection TryAddYiDbContext(this IServiceCollection service, ServiceLifetime serviceLifetime = ServiceLifetime.Transient) where DbContext : class, ISqlSugarDbContext + + public static IServiceCollection AddYiDbContext(this IServiceCollection service, Action options) where TDbContext : class, ISqlSugarDbContextDependencies { - service.TryAdd(new ServiceDescriptor(typeof(ISqlSugarDbContext), typeof(DbContext), serviceLifetime)); - return service; - } - - - public static IServiceCollection AddYiDbContext(this IServiceCollection service, Action options) where DbContext : class, ISqlSugarDbContext - { - service.Configure(ops => { options.Invoke(ops); }); - service.AddYiDbContext(); + service.AddYiDbContext(); return service; } } diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiFrameworkRbacSqlSugarCoreModule.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiFrameworkRbacSqlSugarCoreModule.cs index 135714b7..1c85803d 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiFrameworkRbacSqlSugarCoreModule.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiFrameworkRbacSqlSugarCoreModule.cs @@ -15,7 +15,7 @@ namespace Yi.Framework.Rbac.SqlSugarCore { public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.TryAddYiDbContext(); + context.Services.AddYiDbContext(); } } } \ No newline at end of file diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiRbacDbContextFactory.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiRbacDbContext.cs similarity index 90% rename from Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiRbacDbContextFactory.cs rename to Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiRbacDbContext.cs index bbd94e06..428aed15 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiRbacDbContextFactory.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.SqlSugarCore/YiRbacDbContext.cs @@ -1,5 +1,7 @@ -using SqlSugar; -using Volo.Abp.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; +using SqlSugar; +using Volo.Abp.Data; +using Volo.Abp.Users; using Yi.Framework.Rbac.Domain.Authorization; using Yi.Framework.Rbac.Domain.Entities; using Yi.Framework.Rbac.Domain.Extensions; @@ -9,21 +11,16 @@ using Yi.Framework.SqlSugarCore; namespace Yi.Framework.Rbac.SqlSugarCore { - public class YiRbacDbContextFactory : SqlSugarDbContextFactory + public class YiRbacDbContext : SqlSugarDbContext { - public YiRbacDbContextFactory(IAbpLazyServiceProvider lazyServiceProvider) : base(lazyServiceProvider) - { - } - + protected IDataFilter DataFilter => LazyServiceProvider.LazyGetRequiredService(); + protected ICurrentUser CurrentUser => LazyServiceProvider.GetRequiredService(); protected override void CustomDataFilter(ISqlSugarClient sqlSugarClient) { if (DataFilter.IsEnabled()) { DataPermissionFilter(sqlSugarClient); } - - - base.CustomDataFilter(sqlSugarClient); } diff --git a/Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiAbpSqlSugarCoreModule.cs b/Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiAbpSqlSugarCoreModule.cs index 7f85fd00..b3e27036 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiAbpSqlSugarCoreModule.cs +++ b/Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiAbpSqlSugarCoreModule.cs @@ -33,7 +33,7 @@ namespace Yi.Abp.SqlsugarCore { public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.AddYiDbContext(); + context.Services.AddYiDbContext(); //默认不开放,可根据项目需要是否Db直接对外开放 //context.Services.AddTransient(x => x.GetRequiredService().SqlSugarClient); } diff --git a/Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiDbContextFactory.cs b/Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiDbContext.cs similarity index 52% rename from Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiDbContextFactory.cs rename to Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiDbContext.cs index 9077cf18..34aac630 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiDbContextFactory.cs +++ b/Yi.Abp.Net8/src/Yi.Abp.SqlSugarCore/YiDbContext.cs @@ -6,10 +6,7 @@ using Yi.Framework.SqlSugarCore; namespace Yi.Abp.SqlSugarCore { - public class YiDbContextFactory : YiRbacDbContextFactory + public class YiDbContext : SqlSugarDbContext { - public YiDbContextFactory(IAbpLazyServiceProvider lazyServiceProvider) : base(lazyServiceProvider) - { - } } }