【发布时间】:2021-05-22 02:42:58
【问题描述】:
我正在尝试使用 SqlDataProvider 审核数据库操作。
Global.asax.cs
Audit.Core.Configuration.DataProvider = new SqlDataProvider()
{
ConnectionString = "...",
Schema = "dbo",
TableName = "Event",
IdColumnName = "EventId",
JsonColumnName = "JsonData",
LastUpdatedDateColumnName = "LastUpdatedDate",
CustomColumns = new List<CustomColumn>()
{
new CustomColumn("EventType", ev => ev.EventType),
new CustomColumn("ModuleName", ev => "AuditTrail")
}
};
如果我添加如下自定义列
new CustomColumn("StartDate", ev=>ev.StartDate),
new CustomColumn("EndDate", ev=>ev.EndDate),
new CustomColumn("Duration", ev=>ev.Duration),
new CustomColumn("Target", ev=>ev.Target),
new CustomColumn("Comments", ev=>ev.Comments),
new CustomColumn("Environment", ev=> ev.Environment),
它抛出异常“不存在从对象类型 Audit.Core.AuditEventEnvironment 到已知托管提供程序本机类型的映射”
如何在此处跟踪事件。 基本上我想将 jasonData 字段值插入到几个字段中。
上下文变化
public override int SaveChanges()
{
return _helper.SaveChanges(_auditContext, () => base.SaveChanges());
}
public override async Task<int> SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken))
{
return await _helper.SaveChangesAsync(_auditContext, () => base.SaveChangesAsync(cancellationToken));
}
【问题讨论】:
标签: json audit .net-framework-version audit.net audit.net.sqlserver