How do I get row count using the NHibernate QueryOver api?

前端 未结 4 794
余生分开走
余生分开走 2021-02-02 08:45

I\'m using the QueryOver api that is part of NHibernate 3.x. I would like to get a row count, but the method I\'m using returns all objects and then gets the count of the colle

相关标签:
4条回答
  • 2021-02-02 09:27

    After a bit of playing around with the api, this will do it:

    _session.QueryOver<MyObject>()
        .Select(Projections.RowCount())
        .FutureValue<int>()
        .Value
    

    If you don't want to return it as a future, you can just get the SingleOrDefault<int>() instead.

    0 讨论(0)
  • 2021-02-02 09:42

    Im using like this:

    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();
    
        }
    
    0 讨论(0)
  • 2021-02-02 09:44

    Another method

    var count = Session.QueryOver<Employer>()
        .Where(x => x.EmployerIsActive)
        .RowCount();
    
    0 讨论(0)
  • Another method:

    int employerCount = session
      .QueryOver<Employer>()
      .Where(x => x.EmployerIsActive) // some condition if needed
      .Select(Projections.Count<Employer>(x => x.EmployerId))
      .SingleOrDefault<int>();
    
    0 讨论(0)
提交回复
热议问题