保存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端点?
答案 0 :(得分:0)
您可以返回包含实体的自己的SaveResult对象 跳过保存过程不要从OnBeforeSaveEntities函数返回实体 一旦返回SaveResult对象,breeze客户端就会将它们添加到管理器
其他选项是使用您自己的breeze.contextprovider
实现希望这会有所帮助