Регистрация изменений в базе данных с использованием Entity Framework и ELMAH (или еще) - PullRequest
1 голос
/ 19 марта 2012

Наш клиент запрашивает функциональность регистрации изменений в дБ. Нам нужна следующая структура:

"Timestamp", "User", "DB.Table.Field changed", "Value after change"

Что имеем:

  • Entity Framework Code First
  • ELMAH
  • База данных MySQL с более чем 100 таблицами (изменения должны отслеживаться во всех них)

Итак, нам нужно:

  • Каким-то образом отслеживать, какая таблица была изменена
  • Что нового добавлено / обновлено
  • Общая функциональность (если возможно)

Есть идеи, как это сделать?

PS. ELMAH не является строгим требованием. Но MySql это:)

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 декабря 2015

У меня фактически был тот же запрос функции, и хотя я уже писал слой отслеживания для своего универсального хранилища, я обнаружил, что в Nuget / Github есть один, который обрабатывает это.

https://www.nuget.org/packages/TrackerEnabledDbContext/

https://github.com/bilal-fazlani/tracker-enabled-dbcontext

Вы можете использовать это, и я обнаружил, что это прекрасно работает для меня. Я использую его в своем проекте репозитория Generic.

0 голосов
/ 10 апреля 2012

В конечном счете, вы ищете какое-то поведение, которое отслеживает одитинг. ELMAH не ориентирован на это.

Скорее всего, вы захотите взглянуть на какой-нибудь Полиморфный объект, который может отслеживать, кто выполнил какой тип действия на известном объекте. Скорее всего, вы захотите использовать какие-то концепции АОП. Библиотеки типа DynamicProxy2 , LinFu должны быть полезны в этой области.

Ваша цель состоит в том, чтобы использовать прокси-объекты, которые обертывают ваши существующие сущности и «внедряют» информацию аудита, которую вам нужно отслеживать.

...