如何让Breeze查询$元数据而不是元数据?

时间:2013-05-10 14:55:23

标签: odata breeze jaydata

我使用Node,MongoDB和JayData设置我的odata服务。当我在浏览器中点击http://localhost:8000/odata/findash.svc/$metadata时,我会完全按照预期获得元数据。

在浏览器控制台中,我执行以下示例代码:

var manager = new breeze.EntityManager('odata/findash.svc');
var query = new breeze.EntityQuery()
    .from("accounts");
manager.executeQuery(query).then(function(data){
    console.log(data);
}).fail(function(e) {
    alert(e);  
});

系统会弹出一条警告,其中包含以下消息:Error: Metadata query failed for: odata/findash.svc/Metadata; Not Found

网络标签确认Breeze正在点击odata/findash.svc/Metadata,而odata/findash.svc/$metadata产生的是404,而不是{{1}}。

有没有办法在Breeze中配置此行为或我的odata设置有问题?

1 个答案:

答案 0 :(得分:1)

我认为你的问题意味着OData而不是JayData。 Breeze和JayData是两种不同的产品。如果没有,那么我不确定我是否理解这个问题。

我认为你没有告诉微风使用OData端点。默认情况下,breeze使用WebApi端点。您可以通过breeze.config更改此内容,如下所示:

breeze.config.initializeAdapterInstances({
    dataService: "OData", ...
});

Breeze支持OData和WebApi端点。 OData端点(根据OData规范)从'$ metadata'返回元数据.webApi端点从'Metadata'返回元数据。

请参阅:http://www.breezejs.com/documentation/odata