首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Audit.Net:Setup().ForContext<MyContext>()不会映射任何实体

Audit.Net:Setup().ForContext<MyContext>()不会映射任何实体
EN

Stack Overflow用户
提问于 2019-09-11 20:12:31
回答 1查看 241关注 0票数 1

使用以下配置(Audit.Net的一部分)配置Audit.EntityFramework不会导致实体的正确映射。Audit.EntityFramework.Configuration.Setup().ForContext<AuditAudiCCPContext>().UseOptOut();

该方法

代码语言:javascript
复制
public override object InsertEvent(AuditEvent auditEvent)

EntityFrameworkDataProvider.cs返回,没有任何异常,因为它无法找到映射的实体。EntityFrameworkDataProvider.cs的第96行:

代码语言:javascript
复制
var mappedType = _auditTypeMapper?.Invoke(type, entry);

其试图将该实体映射到被审计的实体不能产生任何结果。

我尝试了以下其他配置

一个。

代码语言:javascript
复制
Audit.EntityFramework.Configuration.Setup()
        .ForContext<AuditAudiCCPContext>(config => config
         .ForEntity<SubjectInfo>(_=>_.Ignore(e=>e.Ticket).Ignore(e=>e.LevelSubjectMap))
        .AuditEventType("{context}:{database}"))
        .UseOptIn();

b.这篇文章中的建议-How do I target another database with Audit.Net - Audit.EntityFramework.Core

c.我无法在Setup()上使用方法UseEntityFramework,因为它不可用。

它应该在audit数据库表中创建一个条目,但这并没有发生。也没有例外。

EN

回答 1

Stack Overflow用户

发布于 2019-09-12 03:11:43

您基本上无法配置EntityFramework Data Provider

您必须调用.UseEntityFramework()扩展方法来配置数据实体和审计实体之间的映射,例如:

代码语言:javascript
复制
using Audit.Core;

Audit.Core.Configuration.Setup()
    .UseEntityFramework(_ => _
        .AuditTypeExplicitMapper(map => map
            .Map<SubjectInfo, SubjectInfo_Audit>()
            .Map<xxxx, xxxx_Audit>()));

还可以here一些配置示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57888875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档