كيف أحصل على عدد الصفوف باستخدام واجهة برمجة تطبيقات Nhibernate Queryover؟
-
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();
}
لا تنتمي إلى StackOverflow