Как обновить значения объекта в базе данных, когда ModelState недействителен - PullRequest
0 голосов
/ 06 февраля 2012

Я использую Entity Framework 4.1 и MVC3.У меня есть форма, которая используется для обновления свойств моей модели.Свойства имеют атрибуты для проверки.Проверка работает нормально, и при выполнении действия ModelState содержит всю информацию об ошибках проверки.

Обычно, когда есть ошибки, данные не сохраняются, и форма с информацией проверки подтверждается для пользователя.

То, что я хочу сделать, это сохранить действительные свойства и исключить недействительные.Проверка на стороне клиента работает, и недействительные поля становятся красными, поэтому их можно изменить и сохранить в следующем запросе.

Как этого добиться?Кто-нибудь делал что-то подобное в прошлом?

1 Ответ

0 голосов
/ 07 февраля 2012

Я думаю, вам нужно отключить проверку (DbContext.Configuration.ValidateOnSaveEnabled) и переопределить DbContext.SaveChanges (). В переопределенном методе я бы вызвал DbContext.GetValidationErrors (), который бы возвращал список недействительных объектов. Затем я бы отделил эти объекты от контекста и вызвал бы base.SaveChanges (). После завершения вызова SaveChanges я повторно присоединю недействительные объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...