2016-11-15 6 views
0

すべての行をメモリに入れずに、上位5行を選択してId列で降順にしようとしています。注文方法メモリにすべての行を選択する前にEFを使用して選択と選択5を実行

マイコード:

IList<Article> articles = _articleRepository.GetList(d => d.CategoryId == cat.Id) 
              .OrderByDescending(d=>d.Id).ToList(); 

私はこれが最初にメモリにすべての行を取得し、メモリ内のOrderByとTOP5ルールを適用し、私はこれに別の方法があるはずと信じて知っていますか?私はこれらの2つのルールをすべてメモリに入れる前にそれらを適用したいと思います。どうすればいいですか?

答えて

3

あなたはIQueryableにアクセスする必要があるし、次のLINQ実行します。これは、SQLにLINQ式を変換し、専用のデータベースから関連する行をフェッチします

dbContext.OrderByDescending(d => d.Id).Take(5).ToList(); 

を。 ToList()はクエリを実行し、5つの要素をメモリにロードします。

+0

ニース、ありがとうございました。 –

関連する問題