首先使用Z.EntityFramework.Plus.AuditExtensions.Where在DB中检索审计历史记录?

entity-framework entity-framework-plus

我正在使用Z.EntityFramework.Plus包来实现我项目中的审计功能;我正在关注的DB第一种方法,我跑创建了两个审计表中所描述的查询这里 :通过更新.edmx文件我得到了这些新DBsets

public virtual DbSet<AuditEntries> AuditEntries { get; set; }
public virtual DbSet<AuditEntryProperties> AuditEntryProperties { get; set; }

现在我想检索审计历史记录,我在Z.EntityFramework.Plus命名空间中使用Where扩展方法:

public virtual DbSet<AuditEntries> AuditEntries { get; set; }
public virtual DbSet<AuditEntryProperties> AuditEntryProperties { get; set; }

但编译器正在向我喊叫,他不能将DBset<AuditEntry>DBSet<AuditEntries>如在Where定义中它需要DbSet<AuditEntry> ,而不是DbSet<AuditEntries> ,我是否应该更改名称表?

专家解答

免责声明 :我是项目Entity Framework Plus的所有者

您当前正在使用数据库第一种方法,使用自定义类AuditEntriesAuditEntryProperties 。所以你没有使用Code First和Z.EntityFramework.Plus库提供的类AuditEntryAuditEntryProperty

扩展方法是针对库提供的类进行的,这就是为什么它与您的类不兼容的原因。

您必须在此方面实现与此源相同的扩展方法: DbSet`AuditEntry.cs

可能需要更多的扩展方法。

审计功能应该在夏季完全重新编码,以允许更多可扩展性,如此功能。

编辑:回答子问题

怎么实现呢?

以下是如何实现它的示例: https//gist.github.com/mshwf/af017b50ceb2994d953762ef2b20386d




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因