我使用的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();

    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top