breeze self.manager.getChanges() возвращает 0
Я пытаюсь изменить сущность в бризе и вызвать saveChanges(). Но EntitiesToSave в моем менеджере бриза равен 0. Я не уверен, что я делаю неправильно.
Вот как я получаю данные через контроллер:
[HttpGet]
[CustomAuthorize(Claims = "permission:CanViewLocationAttributes")]
public Location GetLocationById(int clientId, int locationId)
{
//returns a single location object
}
Затем я отображаю свойства объекта местоположения, изменяю его и пытаюсь изменить его следующим образом:
function saveLocationSettings(clientId) {
var self = this;
var saveOptions = this.manager.saveOptions.using({ resourceName: "SaveLocationSettings", allowConcurrentSaves: true });
var entitiesToSave = self.manager.getChanges();
return self.manager.saveChanges(entitiesToSave, saveOptions).then(saveSucceeded, saveFailed);
}
Здесь, когда я проверяю entityToSave, он равен 0. Измененный объект не включается.
Есть идеи, что здесь не так?
1 ответ
Вы уверены, что объект, который вы меняете, находится в том же EntityManager, что и тот, который вы сохраняете? Также помните, что если вы "установите" свойство объекта на его текущее значение, то breeze проигнорирует это изменение.
Простой способ подтвердить и то, и другое - проверить "entityAspect.entityState" объекта после того, как вы его изменили (он должен быть "изменен"), а затем проверить "entityAspect.entityManager", чтобы убедиться, что это тот же EntityManager. что вы планируете сохранить.