diff --git a/Yi.Abp.Net8/Yi.Abp.sln b/Yi.Abp.Net8/Yi.Abp.sln index eba0b309..2c715929 100644 --- a/Yi.Abp.Net8/Yi.Abp.sln +++ b/Yi.Abp.Net8/Yi.Abp.sln @@ -68,6 +68,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Bbs.Applicatio EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Bbs.SqlSugarCore", "module\bbs\Yi.Framework.Bbs.SqlSugarCore\Yi.Framework.Bbs.SqlSugarCore.csproj", "{6C86BA71-9F87-4E2C-B467-2950D77DCDFA}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "audit-logging", "audit-logging", "{73CCF2C4-B9FD-44AB-8D4B-0A421805B094}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.AuditLogging.SqlSugarCore", "module\audit-logging\Yi.AuditLogging.SqlSugarCore\Yi.AuditLogging.SqlSugarCore.csproj", "{48806510-8E18-4E1E-9BAF-5B97E88C5FC3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -166,6 +170,10 @@ Global {6C86BA71-9F87-4E2C-B467-2950D77DCDFA}.Debug|Any CPU.Build.0 = Debug|Any CPU {6C86BA71-9F87-4E2C-B467-2950D77DCDFA}.Release|Any CPU.ActiveCfg = Release|Any CPU {6C86BA71-9F87-4E2C-B467-2950D77DCDFA}.Release|Any CPU.Build.0 = Release|Any CPU + {48806510-8E18-4E1E-9BAF-5B97E88C5FC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48806510-8E18-4E1E-9BAF-5B97E88C5FC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48806510-8E18-4E1E-9BAF-5B97E88C5FC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48806510-8E18-4E1E-9BAF-5B97E88C5FC3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -196,6 +204,8 @@ Global {7E569FD9-B1AB-4848-8AB7-FD9EFA1DBA20} = {E902A945-4F41-4E96-A0DA-9F66CDA22261} {AD4EE9E6-F4A3-4139-AF05-71388167DE5B} = {E902A945-4F41-4E96-A0DA-9F66CDA22261} {6C86BA71-9F87-4E2C-B467-2950D77DCDFA} = {E902A945-4F41-4E96-A0DA-9F66CDA22261} + {73CCF2C4-B9FD-44AB-8D4B-0A421805B094} = {2317227D-7796-4E7B-BEDB-7CD1CAE7B853} + {48806510-8E18-4E1E-9BAF-5B97E88C5FC3} = {73CCF2C4-B9FD-44AB-8D4B-0A421805B094} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {23D6FBC9-C970-4641-BC1E-2AEA59F51C18} diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs index 01a70e75..2e743506 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs @@ -76,12 +76,13 @@ namespace Yi.Framework.SqlSugarCore { EntityService = (c, p) => { - if (new NullabilityInfoContext() .Create(c).WriteState is NullabilityState.Nullable) { p.IsNullable = true; } + + EntityService(c,p); } } }, @@ -236,6 +237,16 @@ namespace Yi.Framework.SqlSugarCore { } + /// + /// 实体配置 + /// + /// + /// + protected virtual void EntityService(PropertyInfo property, EntityColumnInfo column) + { + + } + public void BackupDataBase() { string directoryName = "database_backup"; diff --git a/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/SqlSugarCoreAuditLogRepository.cs b/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/SqlSugarCoreAuditLogRepository.cs new file mode 100644 index 00000000..c15151f7 --- /dev/null +++ b/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/SqlSugarCoreAuditLogRepository.cs @@ -0,0 +1,266 @@ +//using System.Linq.Dynamic.Core; +//using System.Net; +//using Volo.Abp.Auditing; +//using Volo.Abp.Domain.Entities; +//using Yi.Framework.SqlSugarCore.Abstractions; +//using Yi.Framework.SqlSugarCore.Repositories; + +//namespace Volo.Abp.AuditLogging.EntityFrameworkCore; + +//public class SqlSugarCoreAuditLogRepository : SqlSugarRepository, IAuditLogRepository +//{ +// public SqlSugarCoreAuditLogRepository(ISugarDbContextProvider sugarDbContextProvider) : base(sugarDbContextProvider) +// { +// } + +// public virtual async Task> GetListAsync( +// string sorting = null, +// int maxResultCount = 50, +// int skipCount = 0, +// DateTime? startTime = null, +// DateTime? endTime = null, +// string httpMethod = null, +// string url = null, +// Guid? userId = null, +// string userName = null, +// string applicationName = null, +// string clientIpAddress = null, +// string correlationId = null, +// int? maxExecutionDuration = null, +// int? minExecutionDuration = null, +// bool? hasException = null, +// HttpStatusCode? httpStatusCode = null, +// bool includeDetails = false, +// CancellationToken cancellationToken = default) +// { +// var query = await GetListQueryAsync( +// startTime, +// endTime, +// httpMethod, +// url, +// userId, +// userName, +// applicationName, +// clientIpAddress, +// correlationId, +// maxExecutionDuration, +// minExecutionDuration, +// hasException, +// httpStatusCode, +// includeDetails +// ); + +// var auditLogs = await query +// .OrderBy(sorting.IsNullOrWhiteSpace() ? (nameof(AuditLog.ExecutionTime) + " DESC") : sorting) +// .PageBy(skipCount, maxResultCount) +// .ToListAsync(GetCancellationToken(cancellationToken)); + +// return auditLogs; +// } + +// public virtual async Task GetCountAsync( +// DateTime? startTime = null, +// DateTime? endTime = null, +// string httpMethod = null, +// string url = null, +// Guid? userId = null, +// string userName = null, +// string applicationName = null, +// string clientIpAddress = null, +// string correlationId = null, +// int? maxExecutionDuration = null, +// int? minExecutionDuration = null, +// bool? hasException = null, +// HttpStatusCode? httpStatusCode = null, +// CancellationToken cancellationToken = default) +// { +// var query = await GetListQueryAsync( +// startTime, +// endTime, +// httpMethod, +// url, +// userId, +// userName, +// applicationName, +// clientIpAddress, +// correlationId, +// maxExecutionDuration, +// minExecutionDuration, +// hasException, +// httpStatusCode +// ); + +// var totalCount = await query.LongCountAsync(GetCancellationToken(cancellationToken)); + +// return totalCount; +// } + +// protected virtual async Task> GetListQueryAsync( +// DateTime? startTime = null, +// DateTime? endTime = null, +// string httpMethod = null, +// string url = null, +// Guid? userId = null, +// string userName = null, +// string applicationName = null, +// string clientIpAddress = null, +// string correlationId = null, +// int? maxExecutionDuration = null, +// int? minExecutionDuration = null, +// bool? hasException = null, +// HttpStatusCode? httpStatusCode = null, +// bool includeDetails = false) +// { +// var nHttpStatusCode = (int?)httpStatusCode; +// return (await GetDbSetAsync()).AsNoTracking() +// .IncludeDetails(includeDetails) +// .WhereIf(startTime.HasValue, auditLog => auditLog.ExecutionTime >= startTime) +// .WhereIf(endTime.HasValue, auditLog => auditLog.ExecutionTime <= endTime) +// .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null && auditLog.Exceptions != "") +// .WhereIf(hasException.HasValue && !hasException.Value, auditLog => auditLog.Exceptions == null || auditLog.Exceptions == "") +// .WhereIf(httpMethod != null, auditLog => auditLog.HttpMethod == httpMethod) +// .WhereIf(url != null, auditLog => auditLog.Url != null && auditLog.Url.Contains(url)) +// .WhereIf(userId != null, auditLog => auditLog.UserId == userId) +// .WhereIf(userName != null, auditLog => auditLog.UserName == userName) +// .WhereIf(applicationName != null, auditLog => auditLog.ApplicationName == applicationName) +// .WhereIf(clientIpAddress != null, auditLog => auditLog.ClientIpAddress != null && auditLog.ClientIpAddress == clientIpAddress) +// .WhereIf(correlationId != null, auditLog => auditLog.CorrelationId == correlationId) +// .WhereIf(httpStatusCode != null && httpStatusCode > 0, auditLog => auditLog.HttpStatusCode == nHttpStatusCode) +// .WhereIf(maxExecutionDuration != null && maxExecutionDuration.Value > 0, auditLog => auditLog.ExecutionDuration <= maxExecutionDuration) +// .WhereIf(minExecutionDuration != null && minExecutionDuration.Value > 0, auditLog => auditLog.ExecutionDuration >= minExecutionDuration); +// } + +// public virtual async Task> GetAverageExecutionDurationPerDayAsync( +// DateTime startDate, +// DateTime endDate, +// CancellationToken cancellationToken = default) +// { +// var result = await (await GetDbSetAsync()).AsNoTracking() +// .Where(a => a.ExecutionTime < endDate.AddDays(1) && a.ExecutionTime > startDate) +// .OrderBy(t => t.ExecutionTime) +// .GroupBy(t => new { t.ExecutionTime.Date }) +// .Select(g => new { Day = g.Min(t => t.ExecutionTime), avgExecutionTime = g.Average(t => t.ExecutionDuration) }) +// .ToListAsync(GetCancellationToken(cancellationToken)); + +// return result.ToDictionary(element => element.Day.ClearTime(), element => element.avgExecutionTime); +// } + +// [Obsolete("Use WithDetailsAsync method.")] +// public override IQueryable WithDetails() +// { +// return GetQueryable().IncludeDetails(); +// } + +// public override async Task> WithDetailsAsync() +// { +// return (await GetQueryableAsync()).IncludeDetails(); +// } + +// public virtual async Task GetEntityChange( +// Guid entityChangeId, +// CancellationToken cancellationToken = default) +// { +// var entityChange = await (await GetDbContextAsync()).Set() +// .AsNoTracking() +// .IncludeDetails() +// .Where(x => x.Id == entityChangeId) +// .OrderBy(x => x.Id) +// .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + +// if (entityChange == null) +// { +// throw new EntityNotFoundException(typeof(EntityChange)); +// } + +// return entityChange; +// } + +// public virtual async Task> GetEntityChangeListAsync( +// string sorting = null, +// int maxResultCount = 50, +// int skipCount = 0, +// Guid? auditLogId = null, +// DateTime? startTime = null, +// DateTime? endTime = null, +// EntityChangeType? changeType = null, +// string entityId = null, +// string entityTypeFullName = null, +// bool includeDetails = false, +// CancellationToken cancellationToken = default) +// { +// var query = await GetEntityChangeListQueryAsync(auditLogId, startTime, endTime, changeType, entityId, entityTypeFullName, includeDetails); + +// return await query.OrderBy(sorting.IsNullOrWhiteSpace() ? (nameof(EntityChange.ChangeTime) + " DESC") : sorting) +// .PageBy(skipCount, maxResultCount) +// .ToListAsync(GetCancellationToken(cancellationToken)); +// } + +// public virtual async Task GetEntityChangeCountAsync( +// Guid? auditLogId = null, +// DateTime? startTime = null, +// DateTime? endTime = null, +// EntityChangeType? changeType = null, +// string entityId = null, +// string entityTypeFullName = null, +// CancellationToken cancellationToken = default) +// { +// var query = await GetEntityChangeListQueryAsync(auditLogId, startTime, endTime, changeType, entityId, entityTypeFullName); + +// var totalCount = await query.LongCountAsync(GetCancellationToken(cancellationToken)); + +// return totalCount; +// } + +// public virtual async Task GetEntityChangeWithUsernameAsync( +// Guid entityChangeId, +// CancellationToken cancellationToken = default) +// { +// var auditLog = await (await GetDbSetAsync()).AsNoTracking().IncludeDetails() +// .Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId)).FirstAsync(GetCancellationToken(cancellationToken)); + +// return new EntityChangeWithUsername() +// { +// EntityChange = auditLog.EntityChanges.First(x => x.Id == entityChangeId), +// UserName = auditLog.UserName +// }; +// } + +// public virtual async Task> GetEntityChangesWithUsernameAsync( +// string entityId, +// string entityTypeFullName, +// CancellationToken cancellationToken = default) +// { +// var dbContext = await GetDbContextAsync(); + +// var query = dbContext.Set() +// .AsNoTracking() +// .IncludeDetails() +// .Where(x => x.EntityId == entityId && x.EntityTypeFullName == entityTypeFullName); + +// return await (from e in query +// join auditLog in dbContext.AuditLogs on e.AuditLogId equals auditLog.Id +// select new EntityChangeWithUsername { EntityChange = e, UserName = auditLog.UserName }) +// .OrderByDescending(x => x.EntityChange.ChangeTime).ToListAsync(GetCancellationToken(cancellationToken)); +// } + +// protected virtual async Task> GetEntityChangeListQueryAsync( +// Guid? auditLogId = null, +// DateTime? startTime = null, +// DateTime? endTime = null, +// EntityChangeType? changeType = null, +// string entityId = null, +// string entityTypeFullName = null, +// bool includeDetails = false) +// { +// return (await GetDbContextAsync()) +// .Set() +// .AsNoTracking() +// .IncludeDetails(includeDetails) +// .WhereIf(auditLogId.HasValue, e => e.AuditLogId == auditLogId) +// .WhereIf(startTime.HasValue, e => e.ChangeTime >= startTime) +// .WhereIf(endTime.HasValue, e => e.ChangeTime <= endTime) +// .WhereIf(changeType.HasValue, e => e.ChangeType == changeType) +// .WhereIf(!string.IsNullOrWhiteSpace(entityId), e => e.EntityId == entityId) +// .WhereIf(!string.IsNullOrWhiteSpace(entityTypeFullName), e => e.EntityTypeFullName.Contains(entityTypeFullName)); +// } +//} diff --git a/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/Yi.AuditLogging.SqlSugarCore.csproj b/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/Yi.AuditLogging.SqlSugarCore.csproj new file mode 100644 index 00000000..f16bc4cd --- /dev/null +++ b/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/Yi.AuditLogging.SqlSugarCore.csproj @@ -0,0 +1,17 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + diff --git a/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/YiAuditLoggingDbContext.cs b/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/YiAuditLoggingDbContext.cs new file mode 100644 index 00000000..1726fe9c --- /dev/null +++ b/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/YiAuditLoggingDbContext.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +using Volo.Abp.AuditLogging; +using Volo.Abp.DependencyInjection; +using Yi.Framework.SqlSugarCore; + +namespace Yi.AuditLogging.SqlSugarCore +{ + public class YiAuditLoggingDbContext : SqlSugarDbContext + { + public YiAuditLoggingDbContext(IAbpLazyServiceProvider lazyServiceProvider) : base(lazyServiceProvider) + { + } + + protected override void EntityService(PropertyInfo property, EntityColumnInfo column) + { + base.EntityService(property, column); + column.DbTableName = AbpAuditLoggingDbProperties.DbTablePrefix + "AuditLogs"; + + column.IfTable() + + .UpdateProperty(x => x.Id, + x => + { + x.IsPrimarykey = true; + }) + + .UpdateProperty(x => x.ApplicationName, + x => + { + x.Length = AuditLogConsts.MaxApplicationNameLength; + x.DbColumnName = nameof(AuditLog.ApplicationName); + }); + + + //builder.Entity(b => + //{ + // b.ToTable(AbpAuditLoggingDbProperties.DbTablePrefix + "AuditLogs", AbpAuditLoggingDbProperties.DbSchema); + + // b.ConfigureByConvention(); + + // b.Property(x => x.ApplicationName).HasMaxLength(AuditLogConsts.MaxApplicationNameLength).HasColumnName(nameof(AuditLog.ApplicationName)); + // b.Property(x => x.ClientIpAddress).HasMaxLength(AuditLogConsts.MaxClientIpAddressLength).HasColumnName(nameof(AuditLog.ClientIpAddress)); + // b.Property(x => x.ClientName).HasMaxLength(AuditLogConsts.MaxClientNameLength).HasColumnName(nameof(AuditLog.ClientName)); + // b.Property(x => x.ClientId).HasMaxLength(AuditLogConsts.MaxClientIdLength).HasColumnName(nameof(AuditLog.ClientId)); + // b.Property(x => x.CorrelationId).HasMaxLength(AuditLogConsts.MaxCorrelationIdLength).HasColumnName(nameof(AuditLog.CorrelationId)); + // b.Property(x => x.BrowserInfo).HasMaxLength(AuditLogConsts.MaxBrowserInfoLength).HasColumnName(nameof(AuditLog.BrowserInfo)); + // b.Property(x => x.HttpMethod).HasMaxLength(AuditLogConsts.MaxHttpMethodLength).HasColumnName(nameof(AuditLog.HttpMethod)); + // b.Property(x => x.Url).HasMaxLength(AuditLogConsts.MaxUrlLength).HasColumnName(nameof(AuditLog.Url)); + // b.Property(x => x.HttpStatusCode).HasColumnName(nameof(AuditLog.HttpStatusCode)); + + // b.Property(x => x.Comments).HasMaxLength(AuditLogConsts.MaxCommentsLength).HasColumnName(nameof(AuditLog.Comments)); + // b.Property(x => x.ExecutionDuration).HasColumnName(nameof(AuditLog.ExecutionDuration)); + // b.Property(x => x.ImpersonatorTenantId).HasColumnName(nameof(AuditLog.ImpersonatorTenantId)); + // b.Property(x => x.ImpersonatorUserId).HasColumnName(nameof(AuditLog.ImpersonatorUserId)); + // b.Property(x => x.ImpersonatorTenantName).HasMaxLength(AuditLogConsts.MaxTenantNameLength).HasColumnName(nameof(AuditLog.ImpersonatorTenantName)); + // b.Property(x => x.ImpersonatorUserName).HasMaxLength(AuditLogConsts.MaxUserNameLength).HasColumnName(nameof(AuditLog.ImpersonatorUserName)); + // b.Property(x => x.UserId).HasColumnName(nameof(AuditLog.UserId)); + // b.Property(x => x.UserName).HasMaxLength(AuditLogConsts.MaxUserNameLength).HasColumnName(nameof(AuditLog.UserName)); + // b.Property(x => x.TenantId).HasColumnName(nameof(AuditLog.TenantId)); + // b.Property(x => x.TenantName).HasMaxLength(AuditLogConsts.MaxTenantNameLength).HasColumnName(nameof(AuditLog.TenantName)); + + // b.HasMany(a => a.Actions).WithOne().HasForeignKey(x => x.AuditLogId).IsRequired(); + // b.HasMany(a => a.EntityChanges).WithOne().HasForeignKey(x => x.AuditLogId).IsRequired(); + + // b.HasIndex(x => new { x.TenantId, x.ExecutionTime }); + // b.HasIndex(x => new { x.TenantId, x.UserId, x.ExecutionTime }); + + // b.ApplyObjectExtensionMappings(); + //}); + + //builder.Entity(b => + //{ + // b.ToTable(AbpAuditLoggingDbProperties.DbTablePrefix + "AuditLogActions", AbpAuditLoggingDbProperties.DbSchema); + + // b.ConfigureByConvention(); + + // b.Property(x => x.AuditLogId).HasColumnName(nameof(AuditLogAction.AuditLogId)); + // b.Property(x => x.ServiceName).HasMaxLength(AuditLogActionConsts.MaxServiceNameLength).HasColumnName(nameof(AuditLogAction.ServiceName)); + // b.Property(x => x.MethodName).HasMaxLength(AuditLogActionConsts.MaxMethodNameLength).HasColumnName(nameof(AuditLogAction.MethodName)); + // b.Property(x => x.Parameters).HasMaxLength(AuditLogActionConsts.MaxParametersLength).HasColumnName(nameof(AuditLogAction.Parameters)); + // b.Property(x => x.ExecutionTime).HasColumnName(nameof(AuditLogAction.ExecutionTime)); + // b.Property(x => x.ExecutionDuration).HasColumnName(nameof(AuditLogAction.ExecutionDuration)); + + // b.HasIndex(x => new { x.AuditLogId }); + // b.HasIndex(x => new { x.TenantId, x.ServiceName, x.MethodName, x.ExecutionTime }); + + // b.ApplyObjectExtensionMappings(); + //}); + + //builder.Entity(b => + //{ + // b.ToTable(AbpAuditLoggingDbProperties.DbTablePrefix + "EntityChanges", AbpAuditLoggingDbProperties.DbSchema); + + // b.ConfigureByConvention(); + + // b.Property(x => x.EntityTypeFullName).HasMaxLength(EntityChangeConsts.MaxEntityTypeFullNameLength).IsRequired().HasColumnName(nameof(EntityChange.EntityTypeFullName)); + // b.Property(x => x.EntityId).HasMaxLength(EntityChangeConsts.MaxEntityIdLength).IsRequired().HasColumnName(nameof(EntityChange.EntityId)); + // b.Property(x => x.AuditLogId).IsRequired().HasColumnName(nameof(EntityChange.AuditLogId)); + // b.Property(x => x.ChangeTime).IsRequired().HasColumnName(nameof(EntityChange.ChangeTime)); + // b.Property(x => x.ChangeType).IsRequired().HasColumnName(nameof(EntityChange.ChangeType)); + // b.Property(x => x.TenantId).HasColumnName(nameof(EntityChange.TenantId)); + + // b.HasMany(a => a.PropertyChanges).WithOne().HasForeignKey(x => x.EntityChangeId); + + // b.HasIndex(x => new { x.AuditLogId }); + // b.HasIndex(x => new { x.TenantId, x.EntityTypeFullName, x.EntityId }); + + // b.ApplyObjectExtensionMappings(); + //}); + + //builder.Entity(b => + //{ + // b.ToTable(AbpAuditLoggingDbProperties.DbTablePrefix + "EntityPropertyChanges", AbpAuditLoggingDbProperties.DbSchema); + + // b.ConfigureByConvention(); + + // b.Property(x => x.NewValue).HasMaxLength(EntityPropertyChangeConsts.MaxNewValueLength).HasColumnName(nameof(EntityPropertyChange.NewValue)); + // b.Property(x => x.PropertyName).HasMaxLength(EntityPropertyChangeConsts.MaxPropertyNameLength).IsRequired().HasColumnName(nameof(EntityPropertyChange.PropertyName)); + // b.Property(x => x.PropertyTypeFullName).HasMaxLength(EntityPropertyChangeConsts.MaxPropertyTypeFullNameLength).IsRequired().HasColumnName(nameof(EntityPropertyChange.PropertyTypeFullName)); + // b.Property(x => x.OriginalValue).HasMaxLength(EntityPropertyChangeConsts.MaxOriginalValueLength).HasColumnName(nameof(EntityPropertyChange.OriginalValue)); + + // b.HasIndex(x => new { x.EntityChangeId }); + + // b.ApplyObjectExtensionMappings(); + //}); + } + } +} diff --git a/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/YiAuditLoggingSqlSugarCoreModule.cs b/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/YiAuditLoggingSqlSugarCoreModule.cs new file mode 100644 index 00000000..2c0b2126 --- /dev/null +++ b/Yi.Abp.Net8/module/audit-logging/Yi.AuditLogging.SqlSugarCore/YiAuditLoggingSqlSugarCoreModule.cs @@ -0,0 +1,16 @@ +using Volo.Abp.AuditLogging; +using Volo.Abp.Modularity; +using Yi.Framework.SqlSugarCore; + +namespace Yi.AuditLogging.SqlSugarCore +{ + [DependsOn(typeof(AbpAuditLoggingDomainModule))] + [DependsOn(typeof(YiFrameworkSqlSugarCoreModule))] + public class YiAuditLoggingSqlSugarCoreModule:AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddYiDbContext(); + } + } +}