BreezeJS возвращает пользовательские данные при сохранении

Типичный метод действия для сохранения изменений, отправленных из breeze.client:

[HttpPost]
public SaveResult SaveChanges(JObject saveBundle) {
     return _contextProvider.SaveChanges(saveBundle);
}

Я заметил, что у breeze на стороне клиента есть функция обратного вызова для запроса POST, которая ожидает, что структура возвращаемого значения будет конкретной:

      success: function (httpResponse) {
            var data = httpResponse.data;
            httpResponse.saveContext = saveContext;
            var entityErrors = data.Errors || data.errors;
            if (entityErrors) {
                handleHttpError(deferred, httpResponse);
            } else {
                var saveResult = that._prepareSaveResult(saveContext, data);
                deferred.resolve(saveResult);
            }

        },

В моем случае я не хочу использовать _contextProvider.SaveChanges(saveBundle); для сохранения изменений; Я хочу делать это по-своему.

Можно ли вернуть произвольные структурированные данные из метода действия SaveChanges? Или, например, что произойдет, если мы будем использовать другую ORM или базу данных NoSQL? Как бы мы реализовали конечную точку API SaveChanges?


person ppoliani    schedule 28.01.2014    source источник


Ответы (1)


вы можете вернуть свой собственный объект SaveResult, содержащий объекты, чтобы пропустить процесс сохранения, не возвращайте объекты из функции OnBeforeSaveEntities; breeze client добавит их в менеджер, как только вы вернете объект SaveResult

другой вариант - использовать вашу собственную реализацию breeze.contextprovider

надеюсь это поможет

person user2968607    schedule 29.01.2014
comment
Это если мы используем .NET на сервере; Я не использую .NET; Так что, боюсь, это не сработает для меня. - person ppoliani; 30.01.2014