【问题标题】:How can I get Breeze to query $metadata instead of Metadata?如何让 Breeze 查询 $metadata 而不是 Metadata?
【发布时间】:2013-05-11 01:36:39
【问题描述】:

我使用 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 设置有问题?

【问题讨论】:

    标签: odata breeze jaydata


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 谢谢!将该行添加到我的示例代码中并包含 datajs 解决了这个问题。
    • 我在服务器上使用 JayData,在浏览器中使用 Breeze。
    • 哇,我没想到这会起作用,但是……非常酷。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    相关资源
    最近更新 更多