我喜欢在Xamarin.Forms中使用LiteDB。使用条件中的in列表或索引从表中获取对象列表的最佳实践是什么?目前,它对我是这样的:
_db.GetCollection<T>().FindAll().Where(q => listValues.Contains(Convert.ToInt32(q.GetProperty(idColumnName))));listValues -搜索的ids列表。idColumnName -带有索引的列。
但是FindAll会从LiteDB中检索所有记录。在没有完全扫描的情况下,有没有更有效的选项?
发布于 2018-04-06 17:29:47
请改用Find方法中的查询,该方法将仅根据您的查询检索条目,而不是完整的数据集。根据LiteDB的指导,这比对返回的完整数据进行Linq查询更有效:https://github.com/mbdavid/LiteDB/wiki/Queries
因此,您的查询将如下所示
_d.GetCollection<T>().Find(q => listValues.Contains(Convert.ToInt32(q.GetProperty(idColumnName))))https://stackoverflow.com/questions/48000005
复制相似问题