在客户端使用breeze执行查询,并将结果存储在本地。我真的希望在客户端使用.Distinct()
或.FirstOrDefault()
,这样我就可以在本地执行而不必返回服务器。Breeze在客户端获取Distinct或FirstOrDefault
我知道微风在客户端的能力有限。我已经看过样品,没有运气。 http://www.breezejs.com/documentation/query-examples
可以做到这一点?这是他们未来将要做的事吗?
在客户端使用breeze执行查询,并将结果存储在本地。我真的希望在客户端使用.Distinct()
或.FirstOrDefault()
,这样我就可以在本地执行而不必返回服务器。Breeze在客户端获取Distinct或FirstOrDefault
我知道微风在客户端的能力有限。我已经看过样品,没有运气。 http://www.breezejs.com/documentation/query-examples
可以做到这一点?这是他们未来将要做的事吗?
我需要查看您的查询才能正确回答。
在几乎所有情况下,take(1)
相当于firstOrDefault
并且在远程和本地查询都正常工作。
var query = breeze.EntityQuery.from('Persons')
.where('FirstName', 'eq', 'Lizzy')
.take(1); // will return one or null
如果你想找到它的密钥的实体,先在缓存中查找,然后去远程如果必要的话,那么你应该考虑的fetchEntityByKey
method。
Distinct
只适用于投影查询,其中返回的对象(这不是实体,btw)没有身份证。在向我展示您的查询之前,无法知道这是否是您需要的。
有了应有的尊重,我觉得hunch_hunch的回答有点误导。请重新考虑检查MY ANSWER是否是最佳答案。
没有任何东西能够做到这一点。我遇到了同样的情况,不得不在服务器端拨打.Distinct()
和.FirstOrDefault()
。在微风论坛中有一个outstanding suggestion(目前排在第10位),以增加.Distinct()
的功能。
我不知道他们有一个改善微风的建议。谢谢!我希望他们能够执行它。现在我正在查看通过查找方法存储到数组中的已执行查询来执行'.FirstOrDefault()'。至于'.Distinct()',我别无选择,只能将其加载到服务器端。 – RedApple 2014-10-03 14:08:07