我正在使用Z.EntityFramework.Plus包来实现我项目中的审计功能;我正在关注的DB第一种方法,我跑创建了两个审计表中所描述的查询这里 :通过更新.edmx文件我得到了这些新DBsets
public virtual DbSet<AuditEntries> AuditEntries { get; set; }
public virtual DbSet<AuditEntryProperties> AuditEntryProperties { get; set; }
现在我想检索审计历史记录,我在Z.EntityFramework.Plus命名空间中使用Where
扩展方法:
var auditlog = AuditExtensions.Where<TbAdditions>(oContext.AuditEntries, id).ToList();
但编译器正在向我喊叫,他不能将DBset<AuditEntry>
为DBSet<AuditEntries>
如在Where
定义中它需要DbSet<AuditEntry>
,而不是DbSet<AuditEntries>
,我是否应该更改名称表?
免责声明 :我是项目Entity Framework Plus的所有者
您当前正在使用数据库第一种方法,使用自定义类AuditEntries
和AuditEntryProperties
。所以你没有使用Code First和Z.EntityFramework.Plus库提供的类AuditEntry
和AuditEntryProperty
。
扩展方法是针对库提供的类进行的,这就是为什么它与您的类不兼容的原因。
您必须在此方面实现与此源相同的扩展方法: DbSet`AuditEntry.cs
可能需要更多的扩展方法。
审计功能应该在夏季完全重新编码,以允许更多可扩展性,如此功能。
编辑:回答子问题
怎么实现呢?
以下是如何实现它的示例: https : //gist.github.com/mshwf/af017b50ceb2994d953762ef2b20386d