Expand()方法不会将所有数据绑定到对象

时间:2013-04-11 11:54:51

标签: wcf wcf-data-services odata

我正在尝试使用oData查询WCF数据服务。一切正常,但在多对多关系中,扩展功能不起作用。关系是:Product 1-* ProductOrder *-1 Order这是我查询服务的代码:

var queryProductOrder = (DataServiceQuery<ProductOrder>)SessionHelper.context.ProductOrder.Expand(x=>x.Product);
var allProductOrders = await queryProductOrder.ExecuteAsync();

如果我在调试模式下运行它并检查allProductOrder对象,则没有Product。有趣的是,当我检查生成的OData查询并通过浏览器运行它时,产品会扩展。

查询如下所示:

http://localhost:10000/ProductOrder()?$expand=Product

扩展了JSON-Result:

{"odata.metadata":"http://localhost:10000/$metadata#ProductOrder","value":[{"Product":{"id":1,"Name":"Die Sims","Tax_fk":1,"Price":"44.99","Description":"Lebenssimulation","Stock":"99.00","TotalOrder":"0.00","ProductUnit_fk":1,"Barcode":"121212121","MainImage_fk":null,"Tenant_fk":1,"PurchasePrice":null},"id":1,"Product_fk":1,"Order_fk":1,"Tenant_fk":1,"Amount":"10"}]}

同样令人困惑的是,在其他多对多关系中,扩展方法的工作方式应该如此。

为什么它不展开allProductOrders对象?为什么allProductOrders.First().Product对象null但生成的OData查询返回扩展数据?

0 个答案:

没有答案