C# 更新时审计.Net为表中的每个值插入空记录
我正在使用Audit.Net EntityFramework数据提供程序。 这是我在Startup.cs中的配置C# 更新时审计.Net为表中的每个值插入空记录,c#,entity-framework,audit.net,C#,Entity Framework,Audit.net,我正在使用Audit.Net EntityFramework数据提供程序。 这是我在Startup.cs中的配置 Audit.Core.Configuration.Setup().UseEntityFramework(_ => _.AuditTypeMapper(t => typeof(AuditLog)).AuditEntityAction<AuditLog>((ev, entry, entity) => { entity.AuditDa
Audit.Core.Configuration.Setup().UseEntityFramework(_ => _.AuditTypeMapper(t => typeof(AuditLog)).AuditEntityAction<AuditLog>((ev, entry, entity) =>
{
entity.AuditData = entry.ToJson();
entity.AuditDate = DateTime.Now;
entity.AuditUser = Environment.UserName;
// entity.AuditUsername = Environment.MachineName;
entity.AuditUsername = HttpContext.Current.User.Identity.Name;
})
.IgnoreMatchedProperties(true));
可能有什么问题?如果直接从已审核的数据库上下文对
审核日志
数据库集进行更改,则应将审核日志
实体标记为不可审核,以便审核库不会拾取更改
这可以通过使用[auditionore]
装饰类来实现,例如:
[AuditIgnore]
public class AuditLog
{
...
}
或通过配置:
Audit.EntityFramework.Configuration.Setup()
.ForContext<P121DbContext>()
.UseOptOut()
.Ignore<AuditLog>();
Audit.EntityFramework.Configuration.Setup()
.ForContext()
.UseOptOut()
.Ignore();
谢谢!救生员!伟大的延伸!
[AuditIgnore]
public class AuditLog
{
...
}
Audit.EntityFramework.Configuration.Setup()
.ForContext<P121DbContext>()
.UseOptOut()
.Ignore<AuditLog>();