【发布时间】:2012-04-27 03:20:15
【问题描述】:
以下是一些我想从高到低排序的值示例。
8,929 viewers
18,213 viewers
2,223 viewers
41,231 viewers
这是我正在使用的查询示例:
streams = streamRepository.FindAll()
.OrderByDescending(s => s.ViewCount)
.Take(4);
这不能正常工作,因为我想它将参数作为字符串,而不是 int,但这并不奇怪。
你建议我如何使用干净的 C#/Linq 代码创建这个“排序”?
理想情况下,使用上面的数据示例,生成的有序集将是:
41,231 viewers
18,213 viewers
8,929 viewers
2,223 viewers
【问题讨论】:
-
你在查询什么数据库?
-
@Gabe: Microsoft SQL Server 2008 R2。
-
如果值是数字,您应该将它们作为数字存储在数据库中。
-
你有多少行?如果你有很多,那么这将是低效的,因为数据库必须对整个表进行排序。不是很多,还不如在客户端做排序,让代码更容易写。
-
是时候将您的数据库架构重构为更合适的架构了——这是获得长期解决方案的唯一合理方法。
标签: c# linq entity-framework-4 iqueryable