2013-08-16 4 views
0

Я использую событие BeforeSaveEntity для инициализации информации о координатах (широта, долгота) от сторонней службы.Обновление элемента управления контроллера Breeze не работает

Я конвертирую EntityInfo.Entity в требуемый тип назначения и обновляю значение в нем. Однако, когда он переходит к методу saveChanges(), он не выводит мои обновленные значения в базу данных.

Я предполагаю, что каким-то образом контекст не может отслеживать изменения, внесенные мной сущности.

Может ли кто-нибудь помочь?

ответ

1

Просто догадка, но в Breeze против 1.1.3 мы добавили EntityInfo.ForceUpdate логическое свойство, но он никогда не сделал его в основной документации Breeze, он появился только в примечаниях к выпуску.

Это свойство может использоваться для принудительного обновления на стороне сервера всего объекта, когда модификация на стороне сервера была произведена с любым свойством существующего объекта. Другим подходом, который может быть использован, является явное обновление EntityInfo.OriginalValuesMap.

Идея заключается в том, что при обновлении Breeze создает только инструкцию обновления для тех свойств, которые были изменены. Любые изменения на стороне клиента автоматически обнаруживаются из-за механизма отслеживания Breeze, который добавляет запись в «originalValuesMap», но это не может быть сделано автоматически для изменений на стороне сервера, поскольку сущности на стороне сервера не могут выполнять уведомление об изменениях свойств.

+0

Спасибо! Это сработало. Я обновил EntityInfo.OrignalValuesMap перед обновлением объекта на стороне сервера. –

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