0

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 以重建索引以获得正确的结果?

4

1 回答 1

1

这是设计使然。 Count()会给你总数。 ToList()只给你第一页。然后你就会明白这一点。

于 2013-07-31T08:59:31.610 回答