Ravendb 记录计数的奇怪行为
我知道一个查询不能获得超过128条记录,如果我使用.Take(1024),这可以扩展到1024条。但是我在示例数据库中遇到了一个新问题: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
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
应该始终给出该查询的文档的实际计数
这将确保您能够:
是的,我理解这一点,但我不理解的是,somemoredata集合的计数为246,但只提供128个对象。我认为这应该是一个真正的集合。计数值为128。somemoredata是
IEnumerable
。什么意思是它与session.Query()
相同。使用.ToArray()
获取获取的文档计数。这就是答案!如果我能得到正确的结果,我会很高兴的。