我有以下型号:
Products (DbSet<Product>) ProductHasWidgets (DbSet<ProductHasWidget> many-to-many w/ payload) Widgets (DbSet<Widget>)
我越来越难以查询多对多表格,并且有两个问题:
如何编写一个微风查询以返回所有产品:
Widget.IsActive == true
ProductHasWidgets.WidgetId == 1
答案 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);