我有一些Ids
店在以下变量:如何根据ID的自定义顺序从表中获取记录?
List<int> Ids;
现在我想基于以上的ID,但与同样为了得到记录,因为它是在上述Ids.
对于如:记录是这样的数据库:
员工:
Id
1
2
3
4
5
现在,如果IDS数组保存IDS是这样的:4,2,5,3,1然后我试图获得仅此顺序顺序记录:
查询:
var data = context.Employee.Where(t => Ids.Contains(t.Id)).ToList();
但上面的查询是给我喜欢它的输出是表:
Id
1
2
3
4
5
预期输出:
Id
4
2
5
3
1
更新:我已经尝试过下面这样的解决方案,但因为这是实体框架,它没有工作了:
var data = context.Employee.Where(t => Ids.Contains(t.Id))
.OrderBy(d => Ids.IndexOf(d.Id)).ToList();
对于上述方案,使其工作我一定要添加到列表:
var data = context.Employee.Where(t => Ids.Contains(t.Id)).ToList()
.OrderBy(d => Ids.IndexOf(d.Id)).ToList();
但我不想在内存中加载数据,然后筛选出我的记录。
任何人可以帮助我实现这一目标?
你也需要一些努力。请阅读[问]并分享你的研究。这个问题之前已经被问过很多次了,例如参见[duplicate](http://stackoverflow.com/questions/15275269/sort-a-list-from-another-list-ids)。 – CodeCaster
@CodeCaster我找不到Ids.so的Indexof方法这个问题是如何为你重复的? –
@CodeCaster Indexof方法不会为实体框架工作,所以在盲目地将问题标记为重复之前,请仔细阅读问题。谢谢 –