2013-07-30 85 views
0

ravendb查詢計數方法和tolist()返回不同的結果計數ravendb數查詢不等於tolist計數

查詢1(返程9):

var count = session.Query<MobileForm,ByFormNameIndex>().Where(x => x.RequestType == RequestType.Db && x.BelongTo == oaname).ToList().Count; 

查詢2(返回44):

var count = session.Query<MobileForm,ByFormNameIndex>().Where(x => x.RequestType == RequestType.Db && x.BelongTo == oaname).Count(); 

指數定義:

public class ByFormNameIndex : AbstractIndexCreationTask<MobileForm> 
{ 
    public ByFormNameIndex() 
    { 

    Map = mobileForms => from form in mobileForms 
         select new 
         { 
          form.FormName, 
          form.BelongTo, 
          form.RequestType, 
          form.CreateTime, 
          form.Uuid 
         }; 
    Analyzers.Add(x => x.FormName, "Lucene.Net.Analysis.PanGu.PanGuAnalyzer,PanGu.Lucene.Analyzer, Version=1.3.1.0, Culture=neutral, PublicKeyToken=null"); 
    Indexes.Add(x => x.FormName, FieldIndexing.Analyzed); 
    Indexes.Add(x => x.BelongTo, FieldIndexing.NotAnalyzed); 
    Indexes.Add(x => x.RequestType, FieldIndexing.NotAnalyzed); 
    Indexes.Add(x => x.Uuid, FieldIndexing.NotAnalyzed); 
} 

}

query1返回正確的計數,所以這對方法有什麼不同?顯示我新建重建索引以獲得正確結果?

+0

你能否提供失敗的測試? ravendb.net/docs/samples/raven-tests/createraventests –

回答

1

這是設計。 Count()會給你總數。 ToList()只爲您提供第一頁。然後你就會明白這一點。

+0

默認pagesize是9?我認爲tolist應該比這更多。 – sdhjl2000