Linq根据in子句获取记录并排序

时间:2016-09-23 08:16:10

标签: linq

我已将有序ID列表保存到数据库中。现在我想根据持久的id来获取记录。

但是,记录按主键的顺序返回,而不是我持久存在的int []的顺序。不太确定如何实现这一目标。

我目前有以下内容:

int[] ids = {8, 1, 5};

var items = from i in ContentPage.All()
            where ids.Contains(i.ContentPageId)
            select i;

目前记录大约是1,5,8,我实际上想要8,1,5

1 个答案:

答案 0 :(得分:2)

数据库没有义务按特定顺序返回项目。然后你可以这样处理它们:

int[] ids = {8, 1, 5};
var items = (from i in ContentPage.All()
            where ids.Contains(i.ContentPageId)
            select i).ToList();

var answer = (from id in ids
             join item in items
             on id equals item.ContentPageId
             select item).ToList();