Обнаружение изменений на объектах в контексте asp.mvc - PullRequest
1 голос
/ 14 апреля 2011

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

1 Ответ

0 голосов
/ 14 апреля 2011

Вам нужно извлечь объект из базы данных, когда пользователь отправит запрос.Существует ряд причин, по которым вы не можете точно знать, что делать, просто взглянув на то, что вернулось:

  1. Невозможно доверять данным пользователя.Пользователь имеет полный контроль над тем, что браузер отправляет вам обратно, так что это возможно, если вы отключите что-то в запросе
  2. Другой пользователь мог изменить те же данные

Вытащить сущность из базы данных быстро, поэтому просто потяните ее, установите поля, которые вы хотите установить, и SaveChanges ()

Добавление: Как отметил Эдуард в комментариях ниже, похоже, что есть служебный методApplyCurrentValues для этого: msdn.microsoft.com / en-us / library / dd487246.aspx

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