2017-01-23 17 views
2

LINQ to SQLにはorderby句がありますが、以下のようになりますが、ページ設定には何もありませんか?LINQ to SQLのページ分割

from trans in DB.transactions 
orderby trans.column descending 
select trans; 

または、次のような手動で行う必要がありますか?

(from trans in DB.transactions 
orderby trans.column descending 
select trans).Skip(noOfRecords).Take(pageSize); 
+1

はい。あなたは 'Skip'と' Take'メソッドを手助けすることによってそれを行う必要があります。 –

答えて

0

私はあなたが.Skip.Takeを使用する必要があります知っているが、あなたは簡単に自分の仕事にIQueryableの拡張子を書くことができたよう:

public static class Extensions 
{ 
    public static IQueryable<T> Paging<T>(this IQueryable<T> source, int pageNumber, int pageLength) 
    { 
     return source.Skip(pageNumber * pageLength).Take(pageLength); 
    } 
} 

var source = (from trans in DB.transactions 
orderby "cancellation_reason_id" descending 
select trans); 

source = source.Paging(0, 10); // Get first page with 10 item 
+2

'pageNumber * pageLength'でなければなりません。'& ' – Mats391

+0

@ Mats391さんありがとうございました – Feriloo

+0

ありがとう@Ferilooですが、SkipとTakeを使う方法は尋ねられませんでしたが、linq SQLへ)。 –