Я могу создать объект сущности, установить некоторые значения по умолчанию и добавить его в диспетчер. Теперь я хочу отслеживать изменения, используя manager.hasChanges()
. По какой-то причине это всегда возвращает true. Должен ли я также проверять что-то еще при отслеживании вновь созданных объектов, которых нет в базе данных?Breeze: Отслеживание изменений нового объекта
ответ
Как только вы «Добавить» его в EntityManager, по определению, есть изменения, потому что он находится в состоянии «Добавлено». Для добавления «hasChanges» означает, что он должен быть сохранен, потому что он «отличается» от того, что было предоставлено службой персистентности (в этом случае объект еще не был «сохранен»).
Что вы можете сделать, это «Прикрепить» свою сущность к EntityManager в состоянии «Без изменений».
myEntityManager.attachEntity(newEntity, breeze.EntityState.Unchanged);
В этом случае любые изменения будут работать так, как вы хотите, но ...
Breeze теперь будет рассматривать вашу недавно присоединенную к сущности уже были сохранялось, и если вы пытаетесь сохранить его , то сбой не будет выполнен, так как ветерок попытается «изменить» сохраненную сущность вместо создания новой.
Если вы действительно хотите выполнить свой запрос, вам нужно будет использовать «attach», но также отслеживать эти объекты и отмечать их «добавленными», прежде чем пытаться их сохранить.
EntityManager рассматривает объект с EntityState.Added как «измененный» объект. Вот почему HasChanges всегда вернет true.
В этом случае вы должны прослушать событие EntityManager.entityChanged для отслеживания изменений.
См http://www.breezejs.com/sites/all/apidocs/classes/EntityManager.html#event_entityChanged
- 1. Отслеживание изменений свойств объекта PHP
- 2. Обновления объекта django, отслеживание и сравнение изменений
- 3. EF6 отслеживание изменений
- 4. Отслеживание изменений ADO.NET Framework
- 5. EclipseLink JPA Отслеживание изменений
- 6. Отслеживание изменений в таблице
- 7. AngularJS - Отслеживание изменений
- 8. Отключить отслеживание изменений DataTable
- 9. отслеживание изменений в атрибутах
- 10. EntityFramework CTP5 отслеживание изменений
- 11. Отслеживание изменений в UIView
- 12. Отслеживание изменений содержимого документа
- 13. отслеживание изменений в postgresql
- 14. отслеживание изменений Entity
- 15. Отслеживание изменений - Django
- 16. Mysql Триггеры: Отслеживание изменений
- 17. Отслеживание изменений SQL SYS_CHANGE_COLUMNS
- 18. Отслеживание изменений и отчетность
- 19. Отслеживание изменений в подмодулях
- 20. Как реализовать отслеживание изменений объектов
- 21. Отслеживание изменений с помощью $ watch
- 22. breeze js сохранение изменений завершается до сохранения
- 23. Отслеживание изменений в ветке Dev
- 24. Git - отслеживание изменений конфигурации ветвей
- 25. Отслеживание изменений модели в SQLAlchemy
- 26. Отслеживание изменений SQL Server 2000
- 27. Отслеживание изменений в настройках Outlook
- 28. Отслеживание неожиданных изменений в матрице
- 29. Отслеживание/мониторинг внезапных изменений тренда
- 30. Отслеживание изменений базы данных MySQL