![](/img/trans.png)
[英]Audit.NET Entity Framework Core - Related Entities management
[英]Audit.Net:Setup().ForContext<MyContext>() results in no entities being mapped
使用以下配置(Audit.Net的一部分)配置Audit.EntityFramework不会导致正确映射实体。 Audit.EntityFramework.Configuration.Setup().ForContext<AuditAudiCCPContext>().UseOptOut();
方法
public override object InsertEvent(AuditEvent auditEvent)
EntityFrameworkDataProvider.cs
返回无任何异常,因为它无法找到映射的实体。 EntityFrameworkDataProvider.cs
第96行:
var mappedType = _auditTypeMapper?.Invoke(type, entry);
尝试将实体映射到已审计实体的尝试无法产生任何结果。
我尝试了以下其他配置
一种。
Audit.EntityFramework.Configuration.Setup()
.ForContext<AuditAudiCCPContext>(config => config
.ForEntity<SubjectInfo>(_=>_.Ignore(e=>e.Ticket).Ignore(e=>e.LevelSubjectMap))
.AuditEventType("{context}:{database}"))
.UseOptIn();
b。 这篇文章中的建议- 如何使用Audit.Net定位另一个数据库-Audit.EntityFramework.Core
C。 我无法在Setup()
上使用方法UseEntityFramework
,因为它不可用。
它应该在审核数据库表中创建一个条目,但是不会发生。 也不例外。
您基本上缺少配置EntityFramework数据提供程序 。
您必须调用.UseEntityFramework()
扩展方法来配置数据实体和审核实体之间的映射,例如:
using Audit.Core;
Audit.Core.Configuration.Setup()
.UseEntityFramework(_ => _
.AuditTypeExplicitMapper(map => map
.Map<SubjectInfo, SubjectInfo_Audit>()
.Map<xxxx, xxxx_Audit>()));
另外这里有一些配置示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.