ravendb计数查询不等于tolist计数

时间:2013-07-30 01:08:58

标签: linq count ravendb

ravendb查询返回count方法和tolist()。count

的不同结果

查询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返回正确的计数,那么这个方法有什么不同呢?show i new重建索引以获得正确的结果?

1 个答案:

答案 0 :(得分:1)

这是设计上的。 Count()将为您提供总计数。 ToList()仅为您提供第一页。然后你就可以了解它。