В моем спа-центре мне нужно отправить сложное дерево объектов клиенту и позволить пользователю заполнить свои данные, прежде чем объекты можно будет сохранить в базе данных. Таким образом, объекты не существуют в базе данных в этот момент. Дерево объектов строится в памяти на сервере и просто извлекается вызовом breeze.EntityQuery.from("ComplexeObjectTree")
. Сущности привязываются через нокаут к веб-форме. Затем пользователь сначала вводит необходимые данные, прежде чем он сможет нажать кнопку сохранения. Некоторые свойства сущностей в форме являются необязательными и имеют значения по умолчанию. Если пользователь не изменит эти свойства, beeze не обнаружит никаких изменений и не поместит принадлежащие ему сущности в набор изменений. Они помечены как неизмененные, но их значения id по-прежнему -1
(еще не сохранены). Но сохранение базы данных может быть успешно выполнено только тогда, когда все объекты в дереве объектов, включая их отношения, были отправлены на сервер (для соблюдения ограничений базы данных). Операция сохранения должна привести к одному или нескольким операторам вставки, а также для тех сущностей, которые не изменились на клиенте, но являются новыми для базы данных (id==-1
). Как я могу справиться с этим вариантом использования? Разве все объекты с первичным ключом id==-1
не должны быть помечены как добавленные и быть частью набора сохраненных изменений по умолчанию?
Любая помощь очень ценится,
Андреас