2013-06-09 2 views
1

Мне нужно сохранить все данные, которые обновляются так же.Сохранение истории в инфраструктуре Entity Framework/Sql Server

Пользователь вводит автомобиль Модель (Марка, Тип, Год). Возвращается и обновляет год. Мне нужно иметь возможность сохранить и так, чтобы у них была история всей работы, которую они выполняли. Каков наилучший способ сделать это?

ответ

1

Существует несколько способов сделать это. Один из способов - написать некоторые триггеры SQL и сделать это полностью в базе данных. Посмотрите here для некоторых улиц:

Другой способ - выполнить аудит в рамках кода Entity Framework. Существует пакет nuget под названием AuditDbContext с источником на Codeplex.

Вам необходимо решить, хотите ли вы провести аудит в EF или в SQL. Очевидно, что если вам нужно все проверять, и иногда вы можете обращаться к базе данных из разных приложений, которые не используют один и тот же EFT-файл (например, разные технологии и т. Д.), Тогда SQL-триггеры вполне могли бы быть в пути.

0

Возможно (если вы столкнулись с проблемой «истории» чаще), шаблон CQRS представляет для вас интерес; a good primer, Microsoft on CQRS. Для этого шаблона существует структура .NET для этого шаблона (я еще не пробовал): NCQRS.

Если вы действительно хотите, чтобы требование в вашем ответе было выполнено сейчас, и вы используете SQL Server 2010 или более позднюю версию, тогда может быть другой вариант. Change Tracking. Я бы предпочел, чтобы триггеры (но, в конце концов, все такие темные решения для обработки журналов ввели дополнительный риск).

Смежные вопросы