2013-07-30 48 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