現在、LinqtoEntitiesを使用して単純なASP.NETMVCサイトを構築しています。この世界への私の最初の進出はオタクディナーでした。そこで私は使用しようとしているページ化されたリストコードを見つけました。コードは次のようになります。
public class PaginatedList<T> : List<T>
{
public int PageIndex { get; private set; }
public int PageSize { get; private set; }
public int TotalCount { get; private set; }
public int TotalPages { get; private set; }
public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize)
{
PageIndex = pageIndex;
PageSize = pageSize;
TotalCount = source.Count();
TotalPages = (int)Math.Ceiling(TotalCount / (double)PageSize);
this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
}
public bool HasPreviousPage
{
get
{
return (PageIndex > 0);
}
}
public bool HasNextPage
{
get
{
return (PageIndex + 1 < TotalPages);
}
}
}
問題は、エンティティフレームワークを使用していることであり、上記のコードは次のエラーをスローします。
メソッド「スキップ」は、LINQtoEntitiesの並べ替えられた入力でのみサポートされます。メソッド「OrderBy」は、メソッド「Skip」の前に呼び出す必要があります。
Linqの詳細がわからないため、上記のメソッドで列名がどのようになるか、一般的なものであるかがわからない場合に、orderby句を追加する方法がわかりません。
ありがとう!