【发布时间】:2010-12-14 14:36:42
【问题描述】:
我需要使用实体框架按 2 列排序。
这是怎么做到的?
return _repository.GetSomething().OrderBy(x => x.Col1 .. Col2)?
即
SELECT * FROM Foo ORDER BY Col1, Col2
【问题讨论】:
标签: c# .net linq entity-framework
我需要使用实体框架按 2 列排序。
这是怎么做到的?
return _repository.GetSomething().OrderBy(x => x.Col1 .. Col2)?
即
SELECT * FROM Foo ORDER BY Col1, Col2
【问题讨论】:
标签: c# .net linq entity-framework
试试OrderBy(x => x.Col1).ThenBy(x => x.Col2)。无论如何,它是一个 LINQ 功能,并不是 EF 独有的。
【讨论】:
另一种方式:
qqq.OrderBy(x => new { x.Col1, x.Col2} )
【讨论】:
试试:
OrderBy(x => x.Col1).ThenBy(x => x.Col2)
按降序排列试试这个:
OrderByDescending (x => x.Col1).ThenByDescending (x => x.Col2)
【讨论】:
以下排序发生在数据库级别。不在返回的结果上。
试试:
IQueryable<a>.OrderBy("col1 asc, col2 asc")
示例 1:
ctx.CateringOrders.OrderBy("Details.DeliveryDate asc, Details.DeliveryTime asc")
示例 2:
ctx.CateringOrders.OrderBy("{0} {1}, {2} {3}",
"Details.DeliveryDate", "asc",
"Details.DeliveryTime", "asc"
)
在哪里
IQueryable<a> 是实体查询,
"col1 asc" 是第 1 列和排序方向
"col2 asc" 是第 2 列和排序方向
【讨论】:
请注意,这不适用于 Telerik 的 Grid 或任何其他 Telerik 的 DataSource 组件。尽管它使用预过滤的 IQueryable 对象,但排序始终作为最后一步自动完成,有效地覆盖了您的排序设置。
【讨论】: