Sparkdo 审计日志EntityFrameworkCore实现,提供基于EF Core的审计日志数据访问实现
License
—
Deps
28
Install Size
—
Vulns
✓ 0
Published
Feb 8, 2026
$ dotnet add package Sparkdo.AuditLogging.EntityFrameworkCoreSparkdo 审计日志EntityFrameworkCore实现,提供基于EF Core的审计日志数据访问实现。
<PackageReference Include="Sparkdo.AuditLogging.EntityFrameworkCore" Version="x.x.x" />
审计日志数据库上下文,用于审计日志模块的Entity Framework Core数据库操作:
AuditLogs: 审计日志实体集合AuditLogExcelFiles: 审计日志Excel文件实体集合基于EntityFrameworkCore的审计日志仓储实现:
GetListAsync(): 获取审计日志列表GetCountAsync(): 获取审计日志数量GetEntityChange(): 获取实体变更信息GetEntityChangeListAsync(): 获取实体变更列表GetEntityChangesWithUsernameAsync(): 获取带用户名的实体变更历史基于EntityFrameworkCore的审计日志Excel文件仓储实现:
GetListCreationTimeBeforeAsync(): 获取创建时间早于指定时间的审计日志Excel文件列表SparkdoAuditLoggingDbContextModelBuilderExtensions: 数据库模型构建器扩展public class AuditLogService
{
private readonly IAuditLogRepository _auditLogRepository;
public AuditLogService(IAuditLogRepository auditLogRepository)
{
_auditLogRepository = auditLogRepository;
}
public async Task<List<AuditLog>> GetRecentAuditLogsAsync()
{
return await _auditLogRepository.GetListAsync(
sorting: "ExecutionTime DESC",
maxResultCount: 50,
startTime: DateTime.Now.AddDays(-7)
);
}
public async Task<Dictionary<DateTime, double>> GetAverageExecutionDurationAsync()
{
return await _auditLogRepository.GetAverageExecutionDurationPerDayAsync(
startDate: DateTime.Now.AddDays(-30),
endDate: DateTime.Now
);
}
}
// 在启动配置中自定义审计日志数据库配置
services.Configure<SparkdoAuditLoggingDbProperties>(options =>
{
options.DbTablePrefix = "MyApp_";
options.DbSchema = "audit";
});
该库提供了基于 Entity Framework Core 的审计日志实现,可以通过以下方式扩展:
SparkdoAuditLoggingDbContext 来添加自定义实体SparkdoAuditLoggingDbContextModelBuilderExtensions 来自定义实体映射本项目包含以下主要组件:
SparkdoAuditLoggingDbContext: 审计日志数据库上下文实现IAuditLoggingDbContext: 审计日志数据库上下文接口EFCoreAuditLogRepository: 审计日志仓储实现EFCoreAuditLogExcelFileRepository: 审计日志Excel文件仓储实现SparkdoAuditLoggingDbContextModelBuilderExtensions: 数据库模型构建器扩展SparkdoAuditLoggingDbProperties: 数据库属性配置类SparkdoAuditLoggingEntityFrameworkCoreModule: 审计日志EntityFrameworkCore模块配置所有公共接口和类都添加了详细的 XML 文档注释,便于开发者理解和使用。