如何从 IQueryable 获取计数
我正在 GridView 中实现分页。从这篇文章中,我需要两种方法:
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?
}
如何获取第二个方法的值GetEmployeeCount
来自第一个方法 BindEmployees
?我的意思是不重复逻辑(查询)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一种选择是:
另一种选择是将查询传递到分页函数中。
One option would be:
The other option is to pass the query into the paging function.
创建一个在两个地方使用的函数:
然后在其他两个函数中使用它:
Make a function to use in both places:
Then use it in both of your other functions:
@Marc Gravell 的答案解决了所述问题,并且可能是最好的方法。但是,为了提供选项,您也可以重复
join
(因为计数时不需要匿名类型):@Marc Gravell's answer solves the issue as stated, and is probably the best way to go. However, in the interest of providing options, you could also just repeat the
join
(since you don't need the anonymous type when counting):