【发布时间】:2013-05-24 10:58:21
【问题描述】:
我正在使用一个函数来允许来自 Web UI 的查询组合,并且我将实现分页功能,该功能可用于 DataBound 控件,例如 ObjectDataSource、gridView 等:
public class MyClass<TEntity> where TEntity : class
{
FakeEntities xxx = new FakeEntities();
public IEnumerable<TEntity> Get(Func<IQueryable<TEntity>, IQueryable<TEntity>> queryExpression)
{
var query = xxx.Set<TEntity>();
return queryExpression(query).ToList();
}
public int Count()
{
// What Can I return?
}
}
// **** USAGE ****
MyClass<User> u = new MyClass<User>();
var all = u.Get(p => p.Where(z => z.Account == "Smith").OrderBy(order => order.IdOther).Skip(1).Take(2));
上面的查询使用了 Take and Skip 功能,所以我可以得到我的实体的真实数量吗?显然我必须在不修改过滤器表达式的情况下返回查询计数。
【问题讨论】:
标签: c#-4.0 iqueryable