From 353a6b9d0c1f66d1acc9ad4f4cbc7f2c3443ce6e Mon Sep 17 00:00:00 2001 From: chenchun Date: Tue, 19 Nov 2024 12:05:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90dbfactory=E6=90=AD?= =?UTF-8?q?=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ISqlSugarDbContextDependencies.cs | 5 +++++ .../Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs | 2 ++ .../Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs | 4 ++-- .../Uow/UnitOfWorkSqlsugarDbContextProvider.cs | 6 +----- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/ISqlSugarDbContextDependencies.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/ISqlSugarDbContextDependencies.cs index 46c973a4..84f161d8 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/ISqlSugarDbContextDependencies.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/ISqlSugarDbContextDependencies.cs @@ -5,6 +5,11 @@ namespace Yi.Framework.SqlSugarCore; public interface ISqlSugarDbContextDependencies { + /// + /// 执行顺序 + /// + int ExecutionOrder { get; } + void OnSqlSugarClientConfig(ISqlSugarClient sqlSugarClient); void DataExecuted(object oldValue, DataAfterModel entityInfo); void DataExecuting(object oldValue, DataFilterModel entityInfo); diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs index f2addb68..93b0212a 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs @@ -9,6 +9,8 @@ public abstract class SqlSugarDbContext : ISqlSugarDbContextDependencies //属性注入 public IAbpLazyServiceProvider LazyServiceProvider { get; set; } protected ISqlSugarClient SqlSugarClient { get;private set; } + public int ExecutionOrder => 0; + public void OnSqlSugarClientConfig(ISqlSugarClient sqlSugarClient) { SqlSugarClient = sqlSugarClient; diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs index e1ff125e..b5623c1c 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContextFactory.cs @@ -60,7 +60,7 @@ namespace Yi.Framework.SqlSugarCore Action dataExecuted = null; Action onSqlSugarClientConfig = null; - foreach (var dependency in SqlSugarDbContextDependencies) + foreach (var dependency in SqlSugarDbContextDependencies.OrderBy(x=>x.ExecutionOrder)) { onLogExecuting+= dependency.OnLogExecuting; onLogExecuted += dependency.OnLogExecuted; @@ -144,7 +144,7 @@ namespace Yi.Framework.SqlSugarCore //额外的实体服务需要这里配置, Action entityService = null; - foreach (var dependency in SqlSugarDbContextDependencies) + foreach (var dependency in SqlSugarDbContextDependencies.OrderBy(x=>x.ExecutionOrder)) { entityService += dependency.EntityService; } diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/Uow/UnitOfWorkSqlsugarDbContextProvider.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/Uow/UnitOfWorkSqlsugarDbContextProvider.cs index 2e0fe69b..d67b24ee 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/Uow/UnitOfWorkSqlsugarDbContextProvider.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/Uow/UnitOfWorkSqlsugarDbContextProvider.cs @@ -13,8 +13,6 @@ namespace Yi.Framework.SqlSugarCore.Uow { public class UnitOfWorkSqlsugarDbContextProvider : ISugarDbContextProvider where TDbContext : ISqlSugarDbContext { - private readonly ISqlSugarDbConnectionCreator _dbConnectionCreator; - public ILogger> Logger { get; set; } public IServiceProvider ServiceProvider { get; set; } @@ -28,8 +26,7 @@ namespace Yi.Framework.SqlSugarCore.Uow IUnitOfWorkManager unitOfWorkManager, IConnectionStringResolver connectionStringResolver, ICancellationTokenProvider cancellationTokenProvider, - ICurrentTenant currentTenant, - ISqlSugarDbConnectionCreator dbConnectionCreator + ICurrentTenant currentTenant ) { UnitOfWorkManager = unitOfWorkManager; @@ -37,7 +34,6 @@ namespace Yi.Framework.SqlSugarCore.Uow CancellationTokenProvider = cancellationTokenProvider; CurrentTenant = currentTenant; Logger = NullLogger>.Instance; - _dbConnectionCreator = dbConnectionCreator; } //private static object _databaseApiLock = new object();