首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对LiteDB使用"where in“

对LiteDB使用"where in“
EN

Stack Overflow用户
提问于 2017-12-28 08:01:43
回答 1查看 1K关注 0票数 0

我喜欢在Xamarin.Forms中使用LiteDB。使用条件中的in列表或索引从表中获取对象列表的最佳实践是什么?目前,它对我是这样的:

代码语言:javascript
复制
_db.GetCollection<T>().FindAll().Where(q => listValues.Contains(Convert.ToInt32(q.GetProperty(idColumnName))));

listValues -搜索的ids列表。idColumnName -带有索引的列。

但是FindAll会从LiteDB中检索所有记录。在没有完全扫描的情况下,有没有更有效的选项?

EN

回答 1

Stack Overflow用户

发布于 2018-04-06 17:29:47

请改用Find方法中的查询,该方法将仅根据您的查询检索条目,而不是完整的数据集。根据LiteDB的指导,这比对返回的完整数据进行Linq查询更有效:https://github.com/mbdavid/LiteDB/wiki/Queries

因此,您的查询将如下所示

代码语言:javascript
复制
_d.GetCollection<T>().Find(q => listValues.Contains(Convert.ToInt32(q.GetProperty(idColumnName))))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48000005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档