Entity Framework / MVC3: временно отключить проверку

#.net #entity-framework #orm #ef-code-first #entity-framework-4.1

#.net #entity-framework #orm #ef-code-first #entity-framework-4.1

Вопрос:

Сначала я использую EF-код. Я активно использую аннотации кода, чтобы указать, как данные (модель) должны быть проверены. Однако часто мне просто нужна проверка на уровне пользовательского интерфейса и возможность подавлять проверку при сохранении определенных данных в базе данных в коде. Однако, как только я указал правила проверки, они применяются везде — в пользовательском интерфейсе, в базе данных, на уровне доступа к данным.

Могу ли я временно отключить проверку модели на уровне EF, чтобы я мог сохранять данные с помощью SaveChanges() без получения исключений проверки?

Ответ №1:

Вам просто нужно установить Configuration.ValidateOnSaveEnabled = false в вашем классе контекста перед вызовом SaveChanges() .

 context.Configuration.ValidateOnSaveEnabled = false;
context.SaveChanges();
  

Комментарии:

1. Жаль, что я не нашел это несколько недель назад. Отлично подходит для массового импорта.

2. Это так полезно! Это также работает с MVC 4 и EF 6. У меня есть база данных SQL Server, полная данных, преобразованных из базы данных Lotus Notes. Мне нужен был способ, чтобы приложение позволяло пользователю устанавливать для столбца статуса значение «Архивировано» или «Удалено», не заставляя их сначала исправлять данные (они все равно больше не будут использовать строку). Перед выполнением установите ValidateOnSaveEnabled в значение false . SaveChanges () отлично сработал для меня!

3. Есть ли способ генерировать ненулевые поля как null, что позволяет временно сохранять неподтвержденные нулевые поля?