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. что вы планируете сохранить.

Другие вопросы по тегам