我使用Breeze.js与OData服务进行通信,并希望能够获取和保存数据。 因此,有两个端点应该用于获取和节省资源:
1. https://domain.com/smth/getdata
2. https://domain.com/smth/postdata
我创建了一个管理器,其目的是获取数据,并在需要时将它们发送回服务器:
var smthManager = new EntityManager(http://domain.com/smth/getdata);
在smthManager中更改实体后,我必须保存它们(使用endpoind 2)。调查documentation我找到了下一个陈述:
您可以将“保存”重新定位到自定义服务器端点,例如 在一个单独的
上任意命名的动作方法
所以这是“重新定位保存”的代码:
var so = new SaveOptions({ resourceName: "postdata" }); // also tried with resourceName: 'http://domain.com/smth/postdata'
myEntityManager.SaveChanges(null, so );
但是在完成所有这些操作后,我可以看到该请求已发送到https://domain.com/smth/getdata/$batch
答案 0 :(得分:1)
使用WebApi或WebApi2服务的Breeze支持多个服务器端点。使用OData服务的Breeze不会,因为OData规范本身仅支持服务的单个$ batch保存。
请参阅http://www.odata.org/documentation/odata-v2-documentation/batch-processing/
请注意,任何Breeze WebApi或WebApi2服务都是可以直接从OData服务提供的内容的超集,并且通常也很容易公开您的模型(只要您有.NET服务器)。