From 57d8673bb2d9a39d98a685c85e50e4a0ed9d506b Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 7 Dec 2023 10:55:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Context/IRaCISDBContext.cs | 121 +----------------- .../Interceptor/AuditInterceptor.cs | 15 +-- 2 files changed, 3 insertions(+), 133 deletions(-) diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 535cae623..3bca4505f 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -36,8 +36,6 @@ namespace IRaCIS.Core.Infra.EFCore public IRaCISDBContext(DbContextOptions options, IUserInfo userInfo, ILogger logger - - //IAuditingData auditingData ) : base(options) { _logger= logger; @@ -49,36 +47,12 @@ namespace IRaCIS.Core.Infra.EFCore //比数据库上下文构造函数先执行 不能构造函数注入的方式使用配置文件 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.UseLoggerFactory(MyLoggerFactory) - - .ReplaceService(); + optionsBuilder.UseLoggerFactory(MyLoggerFactory); optionsBuilder.UseExceptionProcessor(); - //var config = new ConfigurationBuilder() - // .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).Build(); - //connectionString = config.GetSection("ConnectionStrings:RemoteNew").Value; - //optionsBuilder.AddInterceptors(new AuditingInterceptor(connectionString)); } - #region IModelCacheKeyFactory - - - public class DynamicModelCacheKeyFactoryDesignTimeSupport : IModelCacheKeyFactory - { - public object Create(DbContext context, bool designTime) - => context is IRaCISDBContext dynamicContext - ? (context.GetType(), dynamicContext._userInfo.IsEn_Us, designTime) - : (object)context.GetType(); - - public object Create(DbContext context) - => Create(context, false); - } - - #endregion - - - protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -89,7 +63,6 @@ namespace IRaCIS.Core.Infra.EFCore builder.HasNoKey(); }); - //modelBuilder.HasDbFunction(typeof(DbContext).GetMethod(nameof(GetTableList))); modelBuilder.Entity().HasQueryFilter(p => p.IsAdditional==false); @@ -117,20 +90,10 @@ namespace IRaCIS.Core.Infra.EFCore modelBuilder.Entity().HasMany(t => t.TaskInfluenceList).WithOne(s => s.OriginalTask).HasForeignKey(t => t.OriginalTaskId); - modelBuilder.Entity().HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId); - - + modelBuilder.Entity().HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId); modelBuilder.Entity().HasMany(t => t.ChildList).WithOne(t => t.Parent); modelBuilder.Entity().HasMany(t => t.EarlierSubjectUserList).WithOne(t => t.OrignalSubjectUser); - //if (_userInfo.IsEn_Us) - //{ - // modelBuilder.Entity().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.Value)); - //} - //else - //{ - // modelBuilder.Entity().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.ValueCN)); - //} //遍历实体模型手动配置 @@ -515,19 +478,6 @@ namespace IRaCIS.Core.Infra.EFCore public virtual DbSet TrialEmailBlackUser { get; set; } - #region 废弃 - - public override int SaveChanges() - { - - SetCommonEntityAuditInfo(); - AddAudit().GetAwaiter(); - return base.SaveChanges(); - } - - - #endregion - public override async Task SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken()) { // 采用触发器的方式 设置 CreateUserId CreateTime UpdateTime UpdateUserId 稽查实体里面没有这四个字段的值 因为先后顺序的原因 @@ -587,12 +537,7 @@ namespace IRaCIS.Core.Infra.EFCore throw new DBSaveFailedException("SQL 事务失败,请检查环境。"); } - //catch (Exception ex) - //{ - // _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message); - // throw new DBSaveFailedException(ex.Message); - //} } @@ -701,68 +646,6 @@ namespace IRaCIS.Core.Infra.EFCore } - - #region 更新审计信息 废弃 - - /// - /// 事件绑定的方式 更新审计信息 废弃 - /// - /// - /// - private void UpdateAuitUser(object sender, EntityEntryEventArgs e) - { - if (e.Entry.Entity is IAuditUpdate updateEntity) - { - switch (e.Entry.State) - { - //case EntityState.Deleted: - // entityWithTimestamps.UpdateTime = DateTime.UtcNow; - // Console.WriteLine($"Stamped for delete: {e.Entry.Entity}"); - // break; - case EntityState.Modified: - updateEntity.UpdateTime = DateTime.UtcNow; - updateEntity.UpdateUserId = _userInfo.Id; - break; - //添加的时候,更新审计字段也赋值 - case EntityState.Added: - updateEntity.UpdateTime = DateTime.UtcNow; - updateEntity.UpdateUserId = _userInfo.Id; - break; - } - } - if (e.Entry.Entity is IAuditAdd addEntity) - { - switch (e.Entry.State) - { - case EntityState.Added: - addEntity.CreateTime = DateTime.UtcNow; - addEntity.CreateUserId = _userInfo.Id; - break; - } - } - - if (e.Entry.Entity is IAuditAddWithUserName addEntity2) - { - switch (e.Entry.State) - { - case EntityState.Added: - addEntity2.CreateTime = DateTime.UtcNow; - addEntity2.CreateUserId = _userInfo.Id; - addEntity2.CreateUser = _userInfo.RealName; - break; - case EntityState.Deleted: - addEntity2.CreateTime = DateTime.UtcNow; - addEntity2.CreateUserId = _userInfo.Id; - addEntity2.CreateUser = _userInfo.RealName; - break; - } - } - } - - #endregion - - - public virtual DbSet TaskAllocationRule { get; set; } public virtual DbSet VisitTask { get; set; } diff --git a/IRaCIS.Core.Infra.EFCore/Interceptor/AuditInterceptor.cs b/IRaCIS.Core.Infra.EFCore/Interceptor/AuditInterceptor.cs index 75a4ee348..879e42af5 100644 --- a/IRaCIS.Core.Infra.EFCore/Interceptor/AuditInterceptor.cs +++ b/IRaCIS.Core.Infra.EFCore/Interceptor/AuditInterceptor.cs @@ -43,20 +43,7 @@ public class AuditingInterceptor : ISaveChangesInterceptor #endregion #region SavedChanges - public int SavedChanges(SaveChangesCompletedEventData eventData, int result) - { - if (_audit.Entities.Count > 0) - { - var auditContext = eventData.Context as IRaCISDBContext; - _audit.Succeeded = true; - _audit.EndTime = DateTime.Now; - auditContext.SaveChangesAudits.Add(_audit); - auditContext.SaveChanges(); - } - - return result; - } - + public async ValueTask SavedChangesAsync( SaveChangesCompletedEventData eventData, int result,