Subsonic 3 - Repository GetPagedList Where子句Cast问题

时间:2009-07-30 13:19:27

标签: asp.net-mvc subsonic subsonic3

在Repository中有一个GetPagedList方法。

我有一个期望返回PagedList

的方法

我目前有

return _repository.GetPaged(sortBy, pageNumber, 20);

但是我现在需要进行一些检查,例如

_repository.GetPaged(sortBy, pageNumber, 20).Where(x => x.IsAdmin == false)

现在将类型更改为IEnumerable。我试过做一个Cast>(),但这也不起作用。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

遇到同样的问题,发现你可以创建自己的PagedList<>传入可自定义的IQueryable对象。如下所示,在分页之前添加自己的where子句。

IQueryable<YourObject> yourQuery = _repository.All().Where(x => x.IsAdmin == false);

return new PagedList<YourObject>(yourQuery, pageNo, pageSize);

您可能需要添加一个OrderBy子句,因为我认为这是一个错误或设计限制(V3.03),而不是使用主键作为默认订单列。

我确信在以后的版本中会考虑这种情况,因为它很少在没有任何where子句的情况下进行分页,并且更新tt模板的工作量也不大。