2013-12-06 4 views
1

Возможно ли выполнить бридж во время транзакции? Сохраните изменения только тогда, когда весь код будет успешно выполнен в нем, и если что-то не сработает, откат транзакции. Я экономлю сущность на ветру. Если это сохранение выполнено успешно, я хочу сохранить другой объект. Если при сохранении второго объекта есть какая-либо ошибка, я хочу отменить операцию сохранения первого объекта.Сделки в Breeze

var charge = datacontext.createEntity('Charge', chargeEntity); 
     return vm.save().then(function() { 
        //save second entity 
     }); 

В приведенном выше коде, если Charge успешно сохранен, сохраняется второй объект. Но если возникает некоторая ошибка при сохранении второго объекта, есть ли способ отменить предыдущее сохранение?

ответ

3

Нет причин для этого, просто выполните свои изменения для обоих объектов и сохраните их вместе с помощью EntityManager.saveChanges(). По умолчанию, если либо сбой не удался, то оба будут. Также см. Ответ на этот вопрос: breezejs and entity framework validation after updates, but before commit

Обратите внимание, что это НЕ относится к бэкэндам MongoDB, поскольку Mongo не поддерживает концепцию транзакций.

1

Вам не нужно стрелять два вызова,

Наиболее преимущество бриза массовая операция с использованием один запрос для Используйте SaveChanges метод.