سؤال

لدي استعلام LINQ AS

var mdls = (from mdl in query dbSession.Query<MyModel>("MyIndex")
              orderby mdl.Name
              select dept).Skip(page.Value).Take(4);

حيث "myindex" هو فهرس بسيط محدد في RavendB. أعلم أنه أثناء الاستعلام عن فهرس في RavendB ، فإنه يعيد "TotalResults". يرى هنا

كيف يمكنني الحصول على نتيجة الاستعلام التي لديها TotalResult منشأه؟

هل كانت مفيدة؟

المحلول

إذا كنت تقوم بتنفيذ lucenequery ، فستحصل على مستندات مستخدمة تحتوي على خاصية QueryResult التي تحتوي على TotalResults حتى تتمكن من الوصول إليها على النحو التالي:

var documentQuery = (from mdl in query dbSession.LuceneQuery<MyModel>("MyIndex")
                     orderby mdl.Name
                     select dept).Skip(page.Value).Take(4);

var totalResults = documentQuery.QueryResult.TotalResults;

إذا كنت تقوم بتنفيذ استعلام LINQ بدلاً من ذلك ، فيمكنك الاتصال بـ Count () على الاستعلام قبل الحد من ذلك بالتخطي والاتخاذ:

var linqQuery = (from mdl in query dbSession.Query<MyModel>("MyIndex")
                      orderby mdl.Name
                      select dept);

var totalResults = linqQuery.Count();

var pageOfResults = linqQuery.Skip(page.Value).Take(4);

نصائح أخرى

تحتاج إلى فعل شيء كهذا في نهاية استفسارك

.Customize(x => x.TotalResult)

خاصية TotalResult متوفرة فقط على LuceneQuery ، وليس استعلام LINQ.

يبدو أنه يمكنك الحصول على QueryResult عبر session.LuceneQuery<YouModel>("YourIndex") وليس من session.Query<YourModel>("YourIndex"). لكنني أتساءل لماذا يستخدم المرء session.Query<YourModel>("YourIndex") ?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top