Ravendb 记录计数的奇怪行为

Ravendb 记录计数的奇怪行为,ravendb,Ravendb,我知道一个查询不能获得超过128条记录,如果我使用.Take(1024),这可以扩展到1024条。但是我在示例数据库中遇到了一个新问题: var albumCount = session.Query<Album>().Count(); Console.WriteLine(albumCount); // 246 as expected?!? var somemoredata = session.Query<Album>(); Console.WriteL

我知道一个查询不能获得超过128条记录,如果我使用.Take(1024),这可以扩展到1024条。但是我在示例数据库中遇到了一个新问题:

var albumCount = session.Query<Album>().Count();
Console.WriteLine(albumCount);          // 246 as expected?!?

var somemoredata = session.Query<Album>();
Console.WriteLine(somemoredata.Count());    // 246 but it sould be 128
int cnt = 1;
foreach (var album in somemoredata)
{
   Console.WriteLine(cnt++.ToString() + " " + album.Id);  // repeats 128 counts
}
var albumCount=session.Query().Count();
Console.WriteLine(相册计数);//246和预期的一样?!?
var somemoredata=session.Query();
Console.WriteLine(somemoredata.Count());//246但应该是128
int-cnt=1;
foreach(somemoredata中的var相册)
{
Console.WriteLine(cnt++.ToString()+“”+album.Id);//重复128次计数
}
这怎么可能?somemoredata的计数是246,但foreach写入128行


错误在哪里?

Take
正在为您进行分页,这是原则的一部分。但是
Count
应该始终给出该查询的文档的实际计数

这将确保您能够:

  • 显示显示的数据只是信息的一部分的指示。(第1页,共X页)
  • 当您需要时,让您知道我们需要进行分页

  • 是的,我理解这一点,但我不理解的是,somemoredata集合的计数为246,但只提供128个对象。我认为这应该是一个真正的集合。计数值为128。somemoredata是
    IEnumerable
    。什么意思是它与
    session.Query()
    相同。使用
    .ToArray()
    获取获取的文档计数。这就是答案!如果我能得到正确的结果,我会很高兴的。