使用Breeze客户端获得独特或FirstOrDefault

时间:2014-10-01 16:22:17

标签: breeze

在客户端使用breeze执行的查询,我在本地存储结果。我真的希望在客户端上.Distinct().FirstOrDefault(),以便我可以在本地执行而不是返回服务器。

我知道微风在客户端的能力有限。我看过样品,没有运气。 http://www.breezejs.com/documentation/query-examples

微风能做到吗?这是他们将来会做的事吗?

2 个答案:

答案 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的答案有点误导。请重新考虑检查我的答案作为最佳答案。