微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何从IQueryable获取计数

我在GridView中实现分页.从 this文章,我需要两种方法
public IQueryable BindEmployees(int startRowIndex,int maximumRows)
{
    EmployeeInfoDataContext dbEmp = new EmployeeInfoDataContext();
    var query = from emp in dbEmp.Employees
                join dept in dbEmp.Departments
                    on emp.DeptID equals dept.DeptID
                select new
                {
                    EmpID = emp.EmpID,EmpName = emp.EmpName,Age = emp.Age,Address = emp.Address,DeptName = dept.DepartmentName
                };

    return query.Skip(startRowIndex).Take(maximumRows);
}

public int GetEmployeeCount()
{
    // How can I not repeat the logic above to get the count?
}

如何从第一种方法BindEmployees中获取第二种方法GetEmployeeCount的值?我的意思是没有重复逻辑(查询)?

解决方法

一个选择是:
public IQueryable BindEmployees(int startRowIndex,int maximumRows,out int count)
{
    EmployeeInfoDataContext dbEmp = new EmployeeInfoDataContext();
    var query = from emp in dbEmp.Employees
                join dept in dbEmp.Departments
                    on emp.DeptID equals dept.DeptID
                select new
                {
                    EmpID = emp.EmpID,DeptName = dept.DepartmentName
                };

    count = query.Count();
    return query.Skip(startRowIndex).Take(maximumRows);
}

一个选项是将查询传递到寻呼功能.

原文地址:https://www.jb51.cc/csharp/96950.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐