首先使用Z.EntityFramework.Plus.AuditExtensions.Where在DB中檢索審計歷史記錄?


我正在使用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
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因