此问题已在此处有答案:
Sort a list from another list IDs(4个答案)
3个月前关闭。
我有一个ID列表,我需要从数据库中以完全相同的顺序检索实体,列表中的ID。
这样的查询会返回错误的订单:
List<Guid> listOfIds = targetIds;
var result = await dbContext
.TargetEnities
.Where(x => listOfIds.Contains(x.Id))
.ToListAsync();
我看到了一种在循环和联合结果中发出请求的方法,但它看起来太昂贵了。
怎么解决呢?
2条答案
按热度按时间c90pui9n1#
一旦你有了你的清单,然后试试这个:
如果有大量的id,那么使用字典是一个很好的选择,可以加快这个过程:
yeotifhr2#
数据库不保证任何顺序。如果未指定ORDER BY子句,SELECT命令可以按任何顺序返回记录。具体来说,不保证记录以INSERT顺序返回。
数据库表不是Excel工作表。也就是说,没有自然的行数,因为数据库理论是基于集合论的,集合根据定义是无序的。
必须指定显式顺序
还有
OrderByDescending
和ThenByDescending
扩展方法可以按降序排序。您必须从OrderBy
或OrderByDescending
开始,然后可以选择添加多个ThenBy
和ThenByDescending
调用。