我使用Z.EntityFramework.Plus包在我的项目中实现审核功能; 我遵循数据库第一种方法,运行创建两个审计表的查询,如here所述: 通过更新.edmx文件,我得到了那些新的数据库集
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>
,我应该更改表的名称吗?
答案 0 :(得分:0)
免责声明:我是该项目的所有者Entity Framework Plus
您目前正在使用数据库第一种方法,其中包含自定义类AuditEntries
和AuditEntryProperties
。所以你没有使用Code First和Z.EntityFramework.Plus库提供的类AuditEntry
和AuditEntryProperty
。
扩展方法是针对图书馆提供的课程进行的,这就是为什么它与您的课程不兼容的原因。
您必须在此方面实施与此来源相同的扩展方法:DbSet`AuditEntry.cs
可能需要更多扩展方法。
审核功能应该在夏季完全重新编码,以便像此功能一样提供更多可扩展性。
编辑:回答子问题
如何实施?
以下是如何实施它的示例:https://gist.github.com/mshwf/af017b50ceb2994d953762ef2b20386d