【问题标题】:Subsonic 3 - Repository GetPagedList Where clause Cast issueSubsonic 3 - Repository GetPagedList Where 子句演员问题
【发布时间】:2009-07-30 13:19:26
【问题描述】:

在 Repository 中有一个 GetPagedList 方法。

我有一个期望返回 PagedList 的方法

我现在有

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

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

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

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

任何帮助表示赞赏!

【问题讨论】:

    标签: asp.net-mvc subsonic subsonic3


    【解决方案1】:

    刚遇到同样的问题,发现可以创建自己的 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 模板不会有太多工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多