我如何使用NHibernate的QueryOver API获取行计数?
-
21-09-2019 - |
题
我使用的QueryOver API即NHibernate的3.x的一部分我想获得一个行数,但是我使用该方法返回的所有对象,然后获取集合计数。有没有办法,只是返回的行数的整数/长数值?
我目前使用:
_session.QueryOver<MyObject>().Future().Count()
解决方案
有点玩弄API后,这将做到这一点:
_session.QueryOver<MyObject>()
.Select(Projections.RowCount())
.FutureValue<int>()
.Value
如果你不希望它返回的将来,你可以得到的,而不是SingleOrDefault<int>()
其他提示
另一种方法
var count = Session.QueryOver<Employer>()
.Where(x => x.EmployerIsActive)
.RowCount();
另一种方法:
int employerCount = session
.QueryOver<Employer>()
.Where(x => x.EmployerIsActive) // some condition if needed
.Select(Projections.Count<Employer>(x => x.EmployerId))
.SingleOrDefault<int>();
im使用这样的:
public int QuantidadeTitulosEmAtraso(Sacado s)
{
TituloDesconto titulo = null;
Sacado sacado = null;
var titulos =
_session
.QueryOver<TituloDesconto>(() => titulo)
.JoinAlias(() => titulo.Sacado, () => sacado)
.Where(() => sacado.Id == s.Id)
.Where(() => titulo.Vencimento <= DateTime.Today)
.RowCount();
}
不隶属于 StackOverflow