使用实体框架的“由 Col1,Col2订购”

我需要使用实体框架按2列排序。

怎么做到的?

return _repository.GetSomething().OrderBy(x => x.Col1   .. Col2)?

也就是说

SELECT * FROM Foo ORDER BY Col1, Col2
98279 次浏览

尝试 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)

请注意,这不适用于 Telerik 的 Grid 或任何其他 Telerik 的 DataSource 组件。虽然它使用了预过滤的 IQueryable 对象,但是排序总是自动执行,作为有效覆盖排序设置的最后一步。

你必须遵循: 在网格中指定默认排序

下面的排序发生在数据库级别,而不是在返回的结果上。

试试:

IQueryable<a>.OrderBy("col1 asc, col2 asc")

例子一:

ctx.CateringOrders.OrderBy("Details.DeliveryDate asc, Details.DeliveryTime asc")

例二:

ctx.CateringOrders.OrderBy("{0} {1}, {2} {3}",
"Details.DeliveryDate", "asc",
"Details.DeliveryTime", "asc"
)

在哪里 IQueryable<a>是实体查询, "col1 asc"是第1列和排序方向 "col2 asc"是第2列和排序方向