Я использую пакет Z.EntityFramework.Plus для реализации функции аудита в моем проекте; Я следую первому подходу DB, я запускаю запрос, который создал две таблицы аудита, как описано здесь : путем обновления файла .edmx я получил эти новые DBsets
public virtual DbSet<AuditEntries> AuditEntries { get; set; }
public virtual DbSet<AuditEntryProperties> AuditEntryProperties { get; set; }
теперь я хочу получить историю аудита, я использую метод расширения Where
в пространстве имен Z.EntityFramework.Plus:
var auditlog = AuditExtensions.Where<TbAdditions>(oContext.AuditEntries, id).ToList();
но компилятор кричит на меня, что он не может использовать DBset<AuditEntry>
для DBSet<AuditEntries>
как в определении Where
которого требуется DbSet<AuditEntry>
, а не DbSet<AuditEntries>
, следует ли мне изменить имя Таблица?
Отказ от ответственности : Я являюсь владельцем проекта Entity Framework Plus
В настоящее время вы используете первый подход DB с пользовательским классом AuditEntries
и AuditEntryProperties
. Таким образом, вы не используете Code First с классом AuditEntry
и AuditEntryProperty
предоставляемым библиотекой Z.EntityFramework.Plus.
Метод расширения был создан для класса, предоставляемого библиотекой, поэтому он несовместим с вашим классом.
Вам нужно будет реализовать на вашей стороне те же методы расширения, что и в этом источнике: DbSet`AuditEntry.cs
Вероятно, потребуется больше методов расширения.
Предполагается, что функция аудита будет полностью перекодирована в течение лета, чтобы обеспечить большую расширяемость, как эта функция.
EDIT: ответьте на вопрос
Как его реализовать?
Вот пример того, как его реализовать: https://gist.github.com/mshwf/af017b50ceb2994d953762ef2b20386d