4

私は、その用途が非常に一般的で、テーブルを具体的に参照しないリポジトリ クラスを持っています。以下に示すのは、テーブル内のすべての項目を取得する関数の 1 つです。私がやりたいのは、これを拡張して、結果を順序付けできるようにすることです。述語/式などを渡す方法はありますか?

public IQueryable<T> All<T>() where T : class
{
    return _context.Set<T>().AsQueryable();
}
4

1 に答える 1

3

Queryable.OrderByすべてのエンティティでメソッドを使用するだけです。

fooRepository.All().OrderBy(foo => foo.Bar)

述語を使用してメソッドを追加する場合:

public IQueryable<T> AllOrderedBy<T,TKey>(Expression<Func<T,TKey>> predicate) 
    where T : class
{
    return _context.Set<T>().OrderBy(predicate);
}

ところで、をDbSet<T>実装IQueryable<T>しているので、を呼び出す必要はありませんAsQueryable()

于 2013-01-28T11:20:39.567 に答える