У тебя почти получилось. Вызов entityAspect.setDeleted для сущности "Добавлено" переводит ее непосредственно в состояние "Отсоединено", что фактически удаляет ее из EntityManager и, следовательно, ее нельзя сохранить. Это преднамеренно. Он обрабатывает случай, когда вы создаете объект, а затем удаляете его. В этом случае объект для сохранения отсутствует.
Таким образом, в вашем случае вы должны сделать объект либо «модифицированным», либо «неизмененным», прежде чем вызывать entityAspect.setDeleted. Вы можете сделать это, либо вызвав entityAspect.setUnchanged или entityAspect.setModified перед вызовом entityAspect.setDeleted, либо вы можете вызвать entityAspect.acceptChanges .
Обратите внимание, что вам также нужно будет убедиться, что объект «клон» проходит проверку, и если у вас есть поле параллелизма в объекте, вам также нужно будет установить его соответствующим образом.
ОБНОВЛЕНИЕ 7 декабря
Вы можете создать объект книги в состоянии, помеченном для удаления, за один шаг, как показано ниже:
var book = manager.createEntity(entityNames.book,
{ BookID: 1 }, // use initializer to set the key
breeze.EntityState.Deleted); // creates the entity in the Deleted state
Обязательно инициализируйте его со всеми другими свойствами, необходимыми для того, чтобы сущность прошла проверку и оптимистичный параллелизм на сервере.
Нет проблем, если у вас нет этих чеков. Не уверен, как бы вы получили эти значения, не запрашивая сервер, если бы у вас были такие проверки.
person
Jay Traband
schedule
06.12.2013