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_

両方の結果セットは降順ですが、2番目のコードでどのように可能ですか?

そして、どのコードを使用するのが良いですか?

ありがとう

サラ

4

1 に答える 1

1

2番目のステートメントのList()呼び出しにより、Selectがすぐに列挙されます。つまり、「OrderBy」はDBではなくメモリ内で実行されます。OrderBy呼び出しとList呼び出しを交換する必要があります(ただし、ToDictionaryが同じことを行うため、リストは冗長であるため、実際には必要ありません)。

于 2012-09-04T09:27:50.590 に答える