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

时间:2017-07-09 13:41:43

标签: entity-framework entity-framework-plus

我使用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>,我应该更改表的名称吗?

1 个答案:

答案 0 :(得分:0)

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

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

扩展方法是针对图书馆提供的课程进行的,这就是为什么它与您的课程不兼容的原因。

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

可能需要更多扩展方法。

审核功能应该在夏季完全重新编码,以便像此功能一样提供更多可扩展性。

编辑:回答子问题

  

如何实施?

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