Цитата:
Сообщение от
Артем Enot Грунин
Вообще говоря, так и должно быть! Мы смотрим как было и что будет, и можем, в случае чего, помешать сохранить запись!
Мы не можем посмотреть, что будет, хотя бы потому, что update-запрос может обвалить сам Update (например, если в лукапе указан GUID уже несуществующей записи, или же для int'ового поля указано недопустимое значение). Мы не знаем, что произойдет во время Update. Это своего рода черный ящик. Или же Вы хотите, чтобы в PreUpdate предвыполнился запрос, а потом он ещё раз выполнился в самом Update? Это как-то накладно.
PreUpdate нужен, например, чтобы не дать сохранить объект (или отдельные поля), пока он находится в определенном статусе.
Другое дело, если нас не устраивает новое значение поля, то мы можем сделать что-то только в PostUpdate, да и то, только вручную. Никакого отката нет. Да, это неудобно. Кстати, нечто подобное обещают в CRM 5.0:
http://dotnetdeveloper.co.uk/blogs/m...e/2009/02.aspx