0

这段代码

criteria
.AddOrder(new Order("AnnoInizialePfk", false))
.List<MyClass>()        
.ToDictionary(x => (short)x.AnnoInizialePfk, x => Convert.ToString(x.AnnoInizialePfk));

产生这个 sql

SELECT this_.ANNO_INIZIALE_PFK as y0_ FROM dbo.Table this_ ORDER BY y0_ desc

而是这段代码

criteria
.List<MyClass>()
.OrderByDescending(x => x.AnnoInizialePfk)
.ToDictionary(x => (short)x.AnnoInizialePfk, x => Convert.ToString(x.AnnoInizialePfk));

产生这个 sql

SELECT this_.ANNO_PFK as y0_ FROM dbo.Table this_

两个结果集都是按降序排列的,但是在第二个代码中怎么可能呢?

哪个代码更好用?

谢谢

萨拉

4

1 回答 1

1

第二条语句中的List()调用使其立即枚举 Select。即“OrderBy”是在内存中完成的,而不是在数据库中。您应该交换 OrderBy 和 List 调用(尽管您实际上并不需要 List,因为它是多余的,因为 ToDictionary 也会这样做)。

于 2012-09-04T09:27:50.590 回答