57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using IRaCIS.Core.Domain.Models;
|
|
|
|
namespace IRaCIS.Core.Infra.EFCore
|
|
{
|
|
#region AuditContext
|
|
public class AuditContext : DbContext
|
|
{
|
|
//传递委托进来写日志
|
|
|
|
private readonly string _connectionString;
|
|
|
|
public AuditContext(string connectionString)
|
|
{
|
|
_connectionString = connectionString;
|
|
}
|
|
|
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
=> optionsBuilder.UseSqlServer(_connectionString);
|
|
|
|
public DbSet<SaveChangesAudit> SaveChangesAudits { get; set; }
|
|
}
|
|
|
|
public class SaveChangesAudit
|
|
{
|
|
public Guid Id { get; set; }
|
|
//public Guid AuditId { get; set; }
|
|
public DateTime StartTime { get; set; }
|
|
public DateTime EndTime { get; set; }
|
|
public bool Succeeded { get; set; } = false;
|
|
public string ErrorMessage { get; set; } = string.Empty;
|
|
|
|
public ICollection<EntityAudit> Entities { get; } = new List<EntityAudit>();
|
|
}
|
|
|
|
public class EntityAudit: IAuditAddWithUserName
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid AlterId { get; set; }=Guid.Empty;
|
|
public Guid SaveChangesAuditId { get; set; }
|
|
public EntityState State { get; set; }
|
|
public string AuditMessage { get; set; }
|
|
|
|
|
|
|
|
|
|
public SaveChangesAudit SaveChangesAudit { get; set; }
|
|
|
|
public string CreateUser { get; set; } = string.Empty;
|
|
public Guid CreateUserId { get; set; }=Guid.Empty;
|
|
public DateTime CreateTime { get; set; }=DateTime.Now;
|
|
}
|
|
#endregion
|
|
}
|