繁体   English   中英

Audit.Net:Setup().ForContext <MyContext> ()导致没有实体被映射

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM