4

私はLinqクエリを持っています

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プロパティを持つクエリ結果を取得するにはどうすればよいですか?

4

3 に答える 3

6

LuceneQuery を実行している場合は、TotalResults を含む QueryResult プロパティを持つ DocumentQuery が返されるため、次のようにアクセスできます。

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 クエリを実行している場合は、Skip と Take で制限する前にクエリで 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);
于 2010-09-01T09:11:33.440 に答える
0

からではなく、QueryResult通り抜けることができるようです。しかし、なぜ使用するのだろうか? session.LuceneQuery<YouModel>("YourIndex")session.Query<YourModel>("YourIndex")session.Query<YourModel>("YourIndex")

于 2010-09-02T15:28:11.440 に答える
0

クエリの最後にこのようなことをする必要があります

.Customize(x => x.TotalResult)

TotalResult プロパティは、LINQ クエリではなく、LuceneQuery でのみ使用できます。

于 2010-08-31T16:47:51.583 に答える