当使用Breeze从服务器查询实体并包括导航属性时,所有这些实体都包含在内并通过网络发送。有没有办法只使用客户端代码返回一些导航属性?
让我们说客户及其订单。我们可以使用以下内容轻松过滤客户:
var query = entityQuery.from('Customers')
.where('orders', 'any', 'price', '>', 1000)
.expand('orders');
return manager.executeQuery(query);
这将返回订单价格超过1000的所有客户,并在实体中包含订单。但它会转移所有订单。
有没有办法只包含一些订单,例如仅使用客户端代码的成本超过1000的那些?
答案 0 :(得分:1)
不幸的是,这不是OData语法(微风将您的查询转换为隐藏的内容)支持的功能。
那就是说,你可以反转查询。即。
var query = entityQuery.from('Orders')
.where('price', '>', 1000)
.expand('customer');
这将在EntityManager缓存中生成您想要的实体。