1

假设以下模型:(示例取自 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)

由于收集是不可能的。有没有一种简单的方法来检查这种情况,而不需要建立一个数量的集合和每手过滤?

在这里非常感谢任何帮助。

4

1 回答 1

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

于 2013-11-26T19:30:50.453 回答