3

我刚刚开始探索 js 库,breeze.js。我浏览了这些示例,但似乎找不到任何关于如何使用 WCF 数据服务的示例(所有示例似乎都在 Web API 上)。

有谁知道如何使用微风.js 使用 WCF 数据服务(或任何其他 OData 服务)?

我在文档中的某处读到微风.js 目前仅支持读取 OData 服务。这对我来说很好,因为我正在考虑使用它的用例不包括对 OData 服务的写入。

4

2 回答 2

8

此答案中描述的配置不再正确!

我是微风的工程师​​之一。

使用 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 更合适。这就是我们改进产品的方式。

谢谢

于 2012-10-31T17:25:35.413 回答
0

更正了 OData 配置和示例

杰伊的回答似乎已经过时了。我不相信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.
});
于 2014-04-26T02:24:25.500 回答