BreezeJS在保存时返回自定义数据

时间:2014-01-28 11:09:18

标签: asp.net breeze single-page-application

保存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数据库会发生什么?我们如何实现SaveChanges API端点?

1 个答案:

答案 0 :(得分:0)

您可以返回包含实体的自己的SaveResult对象 跳过保存过程不要从OnBeforeSaveEntities函数返回实体 一旦返回SaveResult对象,breeze客户端就会将它们添加到管理器

其他选项是使用您自己的breeze.contextprovider

实现

希望这会有所帮助