嵌套查询/导航属性集合

时间:2012-11-30 13:27:30

标签: breeze

假设以下模型:(来自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)
由于收集,

是不可能的。 有没有一种简短的方法可以检查这些条件,而无需根据收集和过滤来计算数字?

这里有很多帮助。

1 个答案:

答案 0 :(得分:1)

从Breeze 1.4.6开始,我们增加了对两个新查询运算符的支持:“any”和“all”

这意味着您的查询现在看起来像这样。

var query = EntityQuery.from("Customers")
   .where("Orders", "any", "detail.name", "==", someName);

请参阅:http://www.breezejs.com/documentation/query-examples