1

我使用 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

net 选项卡确认 Breeze 正在命中odata/findash.svc/Metadata,它会产生 404 而不是odata/findash.svc/$metadata正常工作。

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

4

1 回答 1

1

我假设您在问题中指的是 OData 而不是 JayData。Breeze 和 JayData 是两种不同的产品。如果不是,那么我不确定我是否理解这个问题。

我认为您没有告诉微风使用 OData 端点。默认情况下,微风使用 WebApi 端点。您可以像这样通过微风配置更改此设置:

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

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

见:http ://www.breezejs.com/documentation/odata

于 2013-05-10T15:44:05.660 回答