我有一个存储库类,它的使用非常通用,并且没有专门引用我的表。下面显示的是获取表中所有项目的功能之一。我想做的是扩展它以便可以订购结果。有没有办法传入谓词/表达式或类似的东西?
public IQueryable<T> All<T>() where T : class
{
return _context.Set<T>().AsQueryable();
}
我有一个存储库类,它的使用非常通用,并且没有专门引用我的表。下面显示的是获取表中所有项目的功能之一。我想做的是扩展它以便可以订购结果。有没有办法传入谓词/表达式或类似的东西?
public IQueryable<T> All<T>() where T : class
{
return _context.Set<T>().AsQueryable();
}
只需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);
}
BTWDbSet<T>
实现IQueryable<T>
,所以你不需要调用AsQueryable()
.