【问题标题】:Extract paging from IQueryable从 IQueryable 中提取分页
【发布时间】: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


    【解决方案1】:

    我找到了这个解决方案:Get count of an IQueryable<T>

    但是我得到带有内部消息的 targetInvocationException {“此方法支持 LINQ to Entities 基础结构,不打算直接从您的代码中使用。”}

    我知道我的请求可能异常异常,因为最佳实践应该强制将“演示需求”移动到某个包装类,这就是我要做的。所以我不再需要在我的业务逻辑类中获取 Count 实体。

    这只是 UI 问题。

    同样感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多