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

Odata 如何让Breeze查询$metadata而不是元数据?,odata,breeze,jaydata,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"

我用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:odata/findash.svc/Metadata的元数据查询失败;未找到

net选项卡确认Breeze正在点击
odata/findash.svc/Metadata
,这将生成404,而不是运行正常的
odata/findash.svc/$Metadata


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

我想你的问题是指odata而不是JayData。Breeze和JayData是两种不同的产品。如果没有,那么我不确定我是否理解这个问题

我想你还没有告诉breeze使用OData端点。默认情况下,breeze使用WebApi端点。您可以通过breeze.config进行如下更改:

breeze.config.initializeAdapterInstances({
    dataService: "OData", ...
});
Breeze同时支持OData和WebApi端点。OData端点(根据OData规范)从“$metadata”返回元数据。webApi端点从“metadata”返回元数据


请参阅:

我想你的问题是指OData而不是JayData。Breeze和JayData是两种不同的产品。如果不是,我不确定我是否理解这个问题

我认为您没有告诉breeze使用OData端点。默认情况下,breeze使用WebApi端点。您可以通过breeze.config这样更改:

breeze.config.initializeAdapterInstances({
    dataService: "OData", ...
});
Breeze同时支持OData和WebApi端点。OData端点(根据OData规范)从“$metadata”返回元数据。webApi端点从“元数据”返回元数据


请参阅:

谢谢!将这一行添加到我的示例代码中并包含datajs解决了这个问题。我在服务器上使用JayData,在浏览器中使用Breeze。哇,我没想到这会奏效,但是。。。很酷,谢谢!将这一行添加到我的示例代码中并包含datajs解决了这个问题。我在服务器上使用JayData,在浏览器中使用Breeze。哇,我没想到这会奏效,但是。。。很酷。