得到记录数的奇怪行为

时间:2012-05-16 11:55:35

标签: ravendb

我知道我不能通过一个查询获得超过128条记录,并且如果我使用它可以扩展到1024条.Take(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
}

这怎么可能? somemoredata的计数是246,但是foreach写了128行?!?

错误在哪里?

1 个答案:

答案 0 :(得分:2)

Take正在为您做分页,这是save by default原则的一部分。但是Count应该总是给出该查询的文档的实际计数。

这将确保您可以:

  1. 显示所显示数据只是信息片段的指示。 (第1页,X)。
  2. 让您知道我们需要在需要时进行分页。