2015-11-25 14 views
6

Web APIプロジェクトのPaginatedListに問題があります。Paginateメソッドの使用方法

リポジトリであり方法は次のようだ:

public virtual PaginatedList<T> Paginate<TKey>(int pageIndex, int pageSize, 
    Expression<Func<T, TKey>> keySelector, 
    Expression<Func<T, bool>> predicate, 
    params Expression<Func<T, object>>[] includeProperties) 
{ 
    IQueryable<T> query = AllIncluding(includeProperties).OrderBy(keySelector); 

    query = (predicate == null) 
     ? query 
     : query.Where(predicate); 

    return query.ToPaginatedList(pageIndex, pageSize); 
} 

しかし、私はそれを使用しようとすると、次のように:

var a = repository.Paginate<Region>(pageNo, pageSize, x => x.ID, null); 

私はこのエラーを取得する:

Cannot implicitly convert type 'int' to 'Domain.Entities.Dictionaries.Region'

私は間違って何をしていますか?

+0

サンプルは正しいですか?あなたの 'Paginate'メソッドは4つのパラメータ(paramsを無視します)を持っていますが、サンプルコールで3回だけサンディングしています –

+0

はい、そうです。それはちょうど間違いだった。私はすでに質問を更新しました – Marusyk

答えて

6

あなたのメソッドのシグネチャがある私は、ソートのためのキーであるが、あなたの呼び出しであなたがオブジェクト全体Regionを指定され、その後、あなたはkeySelectorintを指定し、それをしようとして、それはそれをコンパイルすることはできませんと仮定しTKeyintタイプをタイプとしてTKeyに使用してください。

私はあなたのサンプルがあるべきとします、私はクラス全体に指定されているので、それがコールでそれを指定しないように、ここで問題ないはずです、としてリポジトリインスタンスがすでにジェネリックであると仮定し

repository.Paginate<int>(pageNo, pageSize, x => x.ID, null); 

ジェネリック型T特定。

+0

ありがとうございました。それは作品です。再度、感謝します。 – Marusyk

+0

あなたは歓迎です:) –

関連する問題