按ID列表获取实体列表 - IN ORDER

men*_*del 3 linq entity-framework

请参阅此问题/答案:实体框架:从表中获取列表中的ID的所有行

现在我的问题是:我想让实体按照它们在id列表中的顺序进行排序.

我会处理一个小列表,并不介意它是否从db中拉出列表后在内存中排序.

Rob*_*Kee 8

var result=db.table
  .Where(l => ids.Any(id => id == l.id))
  .ToList()
  .OrderBy(l => ids.IndexOf(l.id));
Run Code Online (Sandbox Code Playgroud)

要么

var result=db.table
  .Where(l => ids.Contains(l.id))
  .ToList()
  .OrderBy(l => ids.IndexOf(l.id));
Run Code Online (Sandbox Code Playgroud)

两者都应该工作正常.

  • 它可以在数据库中排序,但它的性能非常糟糕,我不会展示它并让其他人复制它并使用它。 (2认同)