Получение истории аудита с использованием 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

Другие вопросы по тегам