【发布时间】:2016-06-21 00:51:00
【问题描述】:
我有一个按 UniqueId 列排序的对象列表 (RunSummary),然后是 RunNo 列。但是UniquId 对象的类型是String。我想将 UniqueId 排序为 Integer 对象(不是 1,10,11,3 而是 1,3,10,11)。这是我的代码:
public List<RunSummary> GetRunSummariesForUniqueIds(List<String> uniqueIds)
{
using (var context = new ELSORegistryEntities())
{
context.Configuration.ProxyCreationEnabled = false;
List<RunSummary> runSummaries = context.RunSummaries
.Where(param => uniqueIds.Contains(param.UniqueId))
.OrderBy(param => param.UniqueId)
.ThenBy(param => param.RunNo)
.ToList<RunSummary>);
return runSummaries;
}
}
我试过了
List<RunSummary> runSummaries = context.RunSummaries
.Where(param => uniqueIds.Contains(param.UniqueId))
.OrderBy(param => Convert.ToInt32(param.UniqueId))
.ThenBy(param => param.RunNo)
.ToList<RunSummary>();
但它不起作用。如何在 LINQ 中排序?
【问题讨论】:
-
具体是什么不起作用?你有例外吗?或者,如果您得到不正确的结果,它们是什么?
-
@juharr 我不认为你可以在
DBContext查询中使用像int.Parse(param.UniqueId)这样的函数? -
我猜,你不能在 LINQ 查询到 DB 中使用 Convert.ToInt32,但是给我们一个问题的答案..
-
我不能同意这个话题的结束。 “选定”帖子上的给定答案不是正确答案。它有效,但不正确。
标签: c# linq sorting entity-framework-6