假设以下模型:(来自Breeze 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)
由于收集,是不可能的。 有没有一种简短的方法可以检查这些条件,而无需根据收集和过滤来计算数字?
这里有很多帮助。
答案 0 :(得分:1)
从Breeze 1.4.6开始,我们增加了对两个新查询运算符的支持:“any”和“all”
这意味着您的查询现在看起来像这样。
var query = EntityQuery.from("Customers")
.where("Orders", "any", "detail.name", "==", someName);