我使用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设置有问题?
答案 0 :(得分:1)
我认为你的问题意味着OData而不是JayData。 Breeze和JayData是两种不同的产品。如果没有,那么我不确定我是否理解这个问题。
我认为你没有告诉微风使用OData端点。默认情况下,breeze使用WebApi端点。您可以通过breeze.config更改此内容,如下所示:
breeze.config.initializeAdapterInstances({
dataService: "OData", ...
});
Breeze支持OData和WebApi端点。 OData端点(根据OData规范)从'$ metadata'返回元数据.webApi端点从'Metadata'返回元数据。