假设以下型号:(例如,从微风DocCode拍摄)嵌套查询/导航属性集合
public class Customer {
public Guid CustomerID { get; internal set; }
public ICollection<Order> Orders { get; set; }
}
public class SomeDetail{
public string name{ get; set; }
}
public class Order {
public int OrderID {get; set;}
public Guid? CustomerID {get; set;}
public SomeDetail detail {get; set;}
}
对单一导航属性嵌套查询是很清楚,我。如果导航属性是一个集合,这怎么能做到呢?事情是这样的:
var query = EntityQuery.from("Customers")
.where("Orders.detail.name", "==", someName);
为“文本”: 选择所有这哪里客户有任何命令的详细名称等于someCondition客户?
我遇到了错误,在这里,因为
.where("Orders.detail.name, "=", someCondition)
是不可能的,因为集合。 有没有一个简短的方法来检查这种情况,而不是建立一个数字收集和过滤每手?
任何帮助在这里大大赞赏。
是......你不能这样做呢。我假设你的意思是“给我每个有订单的客户,其名称是'someName'”。这样的查询将需要两个“任何”条款。今天的OData规范不支持。我们正在努力。如果你只需要回答这个问题,我实际上有办法做这个查询。它涉及控制器上的自定义查询方法。您无法编写客户端过滤器或展开。你所能做的只是传递诸如'someName'之类的参数。让我知道你是否想要。同时,我们的积压项目有要求让这种事情变得更容易/可能。 – Ward
我非常想看到这种方式。这将帮助我很多来简化事情。 –
这不是我想要它的地方,我还没有准备好谈论它,但我推荐给github一个名为“Chai的订单”的queryTests.js中的DocCode测试。相应的'NorthwindController'方法是'OrdersForProduct'。用它来获得灵感。我们会做得更好。 – Ward