我刚刚开始探索 js 库,breeze.js。我浏览了这些示例,但似乎找不到任何关于如何使用 WCF 数据服务的示例(所有示例似乎都在 Web API 上)。
有谁知道如何使用微风.js 使用 WCF 数据服务(或任何其他 OData 服务)?
我在文档中的某处读到微风.js 目前仅支持读取 OData 服务。这对我来说很好,因为我正在考虑使用它的用例不包括对 OData 服务的写入。
我刚刚开始探索 js 库,breeze.js。我浏览了这些示例,但似乎找不到任何关于如何使用 WCF 数据服务的示例(所有示例似乎都在 Web API 上)。
有谁知道如何使用微风.js 使用 WCF 数据服务(或任何其他 OData 服务)?
我在文档中的某处读到微风.js 目前仅支持读取 OData 服务。这对我来说很好,因为我正在考虑使用它的用例不包括对 OData 服务的写入。
我是微风的工程师之一。
使用 Breeze 与 OData 服务对话的最简单方法是首先配置微风以与 OData 对话。
breeze.core.config.setProperties({
// the OData provider
remoteAccessImplementation: entityModel.remoteAccess_odata;
// this is the Knockout provider but we also provide a Backbone provider
// and we have others on the way
trackingImplementation: entityModel.entityTracking_ko,
});
然后初始化一个 EntityManager 并进行第一个查询。
var myServiceName = "http://localhost:9009/ODataService.svc";
var em = new breeze.entityModel.EntityManager( {serviceName: myServiceName });
var query = breeze.entityModel.EntityQuery.from("Customers")
.where("CompanyName", "startsWith", "B")
.orderBy("City");
em.executeQuery(query).then(function(data) {
// process the results here.
});
您应该能够以这种方式使用任何 OData 服务。
http://www.breezejs.com/documentation/introduction上的 Breeze 文档可以提供大量更多信息。
另外,请告诉我们是什么让您觉得 JayData 更合适。这就是我们改进产品的方式。
谢谢
杰伊的回答似乎已经过时了。我不相信entityModel
在该答案中出现的那种类型的微风中会留下任何痕迹。该答案的以下片段将失败:
entityModel.remoteAccess_odata // does not work!
在我撰写本文时,推荐的配置 Breeze 使其与标准 OData 源(例如 WCF OData 服务)对话的方法是
breeze.config.initializeAdapterInstance('dataService', 'OData', true);
杰伊的答案的平衡需要稍微更正以删除对 的引用entityModel
:
// specify the absolute URL to the WCF service address
var serviceName = "http://localhost:9009/ODataService.svc";
var em = new breeze.EntityManager(serviceName );
var query = breeze.EntityQuery.from("Customers")
.where("CompanyName", "startsWith", "B")
.orderBy("City");
em.executeQuery(query).then(function(data) {
// process the data.results here.
});