无法将$expand与BreezeJS和WebAPi OData一起使用
我正在使用新的VS2013,并创建了OData控制器,其中包括2个型号、商店和产品,作为我使用的KO、BreezeJS和DataJs的客户端 我看到expand不起作用,我已将此问题发送到codeplex站点中的microsoft poeple,他们告诉我,我的代码一切正常无法将$expand与BreezeJS和WebAPi OData一起使用,odata,breeze,Odata,Breeze,我正在使用新的VS2013,并创建了OData控制器,其中包括2个型号、商店和产品,作为我使用的KO、BreezeJS和DataJs的客户端 我看到expand不起作用,我已将此问题发送到codeplex站点中的microsoft poeple,他们告诉我,我的代码一切正常 my.vm = { stores: ko.observableArray([]), load: function () { var serverAddress = "
my.vm = {
stores: ko.observableArray([]),
load: function () {
var serverAddress = "/odata";
breeze.config.initializeAdapterInstances({ dataService: "OData" });
var manager = new breeze.EntityManager(serverAddress);
var query = breeze.EntityQuery.from("Store").expand("Products");
manager.executeQuery(query, function (data) {
var results = data.results;
$.each(data.results, function (i, c) {
my.vm.stores.push(c);
});
});
}
};
添加请求/响应
http://localhost:16894/odata/Store?$expand=Products
{
元数据:/odata/$metadataStore,值:[
{
odata.type:WebApplication1.Models.Store,odata.id:/odata/Store1,Products@odata.navigationLinkUrl:/odata/Store1/产品,产品:[
{
odata.type:WebApplication1.Models.Product,odata.id:/odata/Product1,id:1,名称:1
},{
odata.type:WebApplication1.Models.Product,odata.id:/odata/Product2,id:2,Name:2
}
],ID:1,姓名:1
},{
odata.type:WebApplication1.Models.Store,odata.id:/odata/Store2,Products@odata.navigationLinkUrl:/odata/Store2/产品,产品:[
{
odata.type:WebApplication1.Models.Product,odata.id:/odata/Product2,id:2,名称:1
},{
odata.type:WebApplication1.Models.Product,odata.id:/odata/Product3,id:3,名称:2
}
],ID:2,姓名:1
}
]
}只有来自q-[q]未处理拒绝原因的警告应为空:[ReferenceError]您是如何构造OData控制器的,通过WCF数据服务或使用MS的OData model builder?MS OData model builder向您提供Fiddler之类的东西,以提供发送到服务器的实际请求和收到的响应示例。这将使调试变得更容易。除非您每晚使用MS OData model builder中的一个版本,否则这不太可能工作。发布的MS OData ModelBuilder不支持Breeze需要的外键定义。另一张海报指出,这已在其中一个夜间版本中修复,但我们尚未确认。