Получение истории аудита с использованием Z.EntityFramework.Plus.AuditExtensions.Where в БД первым?
Я использую пакет Z.EntityFramework.Plus для реализации функции аудита в моем проекте; Я следую первому подходу к БД, я запускаю запрос, который создал две таблицы аудита, как описано здесь: обновив файл.edmx, я получил эти новые наборы БД
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>
я должен изменить название таблицы?
1 ответ
Отказ от ответственности: я владелец проекта http://entityframework-plus.net/
Вы в настоящее время используете подход БД первый с пользовательским классом AuditEntries
а также AuditEntryProperties
, Таким образом, вы не используете Code First с классом AuditEntry
а также AuditEntryProperty
предоставлено библиотекой Z.EntityFramework.Plus.
Метод расширения был создан для класса, предоставляемого библиотекой, поэтому он несовместим с вашим классом.
Вы должны будете реализовать на своей стороне те же методы расширения, что и в этом источнике: DbSet`AuditEntry.cs
Вероятно, потребуется больше методов расширения.
Предполагается, что функция аудита будет полностью перекодирована летом, чтобы обеспечить большую расширяемость, как эта функция.
РЕДАКТИРОВАТЬ: ответить на подвопрос
Как это реализовать?
Вот пример того, как это реализовать: https://gist.github.com/mshwf/af017b50ceb2994d953762ef2b20386d