كيف أحصل على عدد الصفوف باستخدام واجهة برمجة تطبيقات Nhibernate Queryover؟

StackOverflow https://stackoverflow.com/questions/2489548

  •  21-09-2019
  •  | 
  •  

سؤال

أنا أستخدم واجهة برمجة تطبيقات Queryover التي تعد جزءًا من Nhibernate 3.x. أرغب في الحصول على عدد صف ، لكن الطريقة التي أستخدمها بإرجاع جميع الكائنات ثم تحصل على عدد المجموعة. هل هناك طريقة لإعادة عدد صحيح/قيمة طويلة لعدد الصفوف؟

أنا أستخدم حاليًا:

_session.QueryOver<MyObject>().Future().Count()
هل كانت مفيدة؟

المحلول

بعد قليل من اللعب مع واجهة برمجة التطبيقات ، سيفعل ذلك:

_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>();

أنا أستخدم مثل هذا:

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