作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 LINQ to Nhibernate 来获取数据库中表的计数。但是,我正在运行的代码是拉回表中的所有记录,而不是从表中运行 select count()。
这是我的代码-
public int GetTotalCount(Func<T, bool> where) {
IQueryable<T> queryable = this._sessionManager.GetCurrentSession().Linq<T>().Where(where).AsQueryable();
return queryable.Count();
}
我也试过-
public int GetTotalCount(Func<T, bool> where)
{
IQueryable<T> queryable = this._sessionManager.GetCurrentSession().Linq<T>();
return queryable.Count(where);
}
两者都拉回整个数据集而不是运行计数。有什么想法吗?
此外,我正在使用 NHProf 对其进行概要分析,因此我可以查询它正在运行的内容,即
选择*从表
最佳答案
你的 where
参数需要是 Expression<Func<T, bool>>
;否则,您会将所有内容加载到内存中并使用 LINQ-to-objects。
简而言之:
public int GetTotalCount(Expression<Func<T, bool>> where)
{
return _sessionManager
.GetCurrentSession()
.Linq<T>()
.Where(where);
.Count();
}
关于LINQ TO Nhibernate 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2158866/
我是一名优秀的程序员,十分优秀!