【问题标题】:Getting Distinct or FirstOrDefault with Breeze Client-Side使用 Breeze 客户端获取 Distinct 或 FirstOrDefault
【发布时间】:2014-10-14 06:33:42
【问题描述】:

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

我知道微风在客户端的功能有限。我查看了样本,但没有运气。 http://www.breezejs.com/documentation/query-examples

微风可以做到这一点吗?这是他们将来会做的事情吗?

【问题讨论】:

    标签: breeze


    【解决方案1】:

    微风中还没有任何内置功能可以做到这一点。我遇到了同样的事情,不得不在服务器端调用.Distinct().FirstOrDefault()。去年在微风论坛中有一个outstanding suggestion(目前按投票数排名第10)添加.Distinct()-like 功能。

    【讨论】:

    • 我不知道他们有改善微风的建议。谢谢!我希望他们执行它。现在,我正在查看存储到数组中的已执行查询,并使用查找方法来执行“.FirstOrDefault()”。至于'.Distinct()',我也别无选择,只能加载到服务器端。
    【解决方案2】:

    我需要查看您的问题才能正确回答。

    在几乎所有情况下,take(1) 等同于firstOrDefault,并且在远程和本地查询中都可以正常工作。

    var query = breeze.EntityQuery.from('Persons')
          .where('FirstName', 'eq', 'Lizzy')
          .take(1); // will return one or null
    

    如果您想通过键查找实体,首先在缓存中查找,然后在必要时进行远程操作,那么您应该考虑fetchEntityByKey method

    Distinct 仅对返回的对象(不是实体,顺便说一句)没有 id 的投影查询有意义。在您向我展示您的查询之前,不知道这是否是您需要的。

    恕我直言,我觉得 hunch_hunch 的回答有点误导。请重新考虑检查我的答案作为最佳答案。

    【讨论】:

      猜你喜欢
      • 2014-02-23
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 2011-02-10
      • 2016-03-31
      • 1970-01-01
      相关资源
      最近更新 更多