在客户端使用breeze执行的查询,我在本地存储结果。我真的希望在客户端上.Distinct()
或.FirstOrDefault()
,以便我可以在本地执行而不是返回服务器。
我知道微风在客户端的能力有限。我看过样品,没有运气。 http://www.breezejs.com/documentation/query-examples
微风能做到吗?这是他们将来会做的事吗?
答案 0 :(得分:2)
在微风中还没有任何东西可以做到这一点。我遇到了同样的问题,不得不在服务器端调用.Distinct()
和.FirstOrDefault()
。去年在微风论坛中有一个outstanding suggestion(目前按照投票数排名第10位)来添加.Distinct()
- 就像功能一样。
答案 1 :(得分:0)
我需要查看您的查询才能正确回答。
几乎在所有情况下, take(1)
相当于firstOrDefault
,并且可以在远程和本地查询中正常运行。
var query = breeze.EntityQuery.from('Persons')
.where('FirstName', 'eq', 'Lizzy')
.take(1); // will return one or null
如果你想通过它的密钥找到一个实体,首先在缓存中查找,然后在必要时去远程,那么你应该考虑fetchEntityByKey
method。
Distinct
仅对返回的对象(非NOT实体,btw)没有id的投影查询有意义。在向我展示您的查询之前,无法知道您的需要是否正确。
在充分尊重的情况下,我觉得hunch_hunch的答案有点误导。请重新考虑检查我的答案作为最佳答案。