BreezeJS通过实体集合实体进行查询和过滤

时间:2013-06-01 01:34:10

标签: breeze

我有以下型号:

Products (DbSet<Product>)
ProductHasWidgets (DbSet<ProductHasWidget> many-to-many w/ payload)
Widgets (DbSet<Widget>)

我越来越难以查询多对多表格,并且有两个问题:

如何编写一个微风查询以返回所有产品:

  1. Widget.IsActive == true
  2. ProductHasWidgets.WidgetId == 1

2 个答案:

答案 0 :(得分:1)

您无法从Breeze客户端那样做,因为Breeze目前不支持any关键字。

您可以编写服务方法来在服务器上执行查询。客户端可以使用BreezeJS withParameters查询谓词将查询参数传递给该方法。

答案 1 :(得分:0)

从Breeze 1.4.6开始,Breeze现在支持“任何”和“所有”查询。请参阅:http://www.breezejs.com/documentation/query-examples

根据您的型号,这意味着您的查询类似于:

var predicate = breeze.Predicate.create("WidgetId", "==" 1)
  .and("Widget.IsActive", "==", true);
var query = EntityQuery.from("Products")
    .where("ProductHasWidgets", "any", predicate);