RavenDB分页行为
我有下面的跳绳测试-RavenDB分页行为,ravendb,Ravendb,我有下面的跳绳测试- [Test] public void RavenPagingBehaviour() { const int count = 2048; var eventEntities = PopulateEvents(count); PopulateEventsToRaven(eventEntities); using (var session = Store.OpenSession(_testD
[Test]
public void RavenPagingBehaviour()
{
const int count = 2048;
var eventEntities = PopulateEvents(count);
PopulateEventsToRaven(eventEntities);
using (var session = Store.OpenSession(_testDataBase))
{
var queryable =
session.Query<EventEntity>().Customize(x => x.WaitForNonStaleResultsAsOfLastWrite()).Skip(0).Take(1024);
var entities = queryable.ToArray();
foreach (var eventEntity in entities)
{
eventEntity.Key = "Modified";
}
session.SaveChanges();
queryable = session.Query<EventEntity>().Customize(x => x.WaitForNonStaleResultsAsOfLastWrite()).Skip(0).Take(1024);
entities = queryable.ToArray();
foreach (var eventEntity in entities)
{
Assert.AreEqual(eventEntity.Key, "Modified");
}
}
}
[测试]
公众行为
{
常数整数计数=2048;
var eventEntities=PopulateEvents(计数);
PopulateEventsToRaven(事件实体);
使用(var session=Store.OpenSession(_testDataBase))
{
可查询变量=
session.Query().Customize(x=>x.waitForNonSalesultsAsoflastWrite()).Skip(0.Take(1024);
var entities=queryable.ToArray();
foreach(实体中的var eventEntity)
{
eventEntity.Key=“已修改”;
}
session.SaveChanges();
queryable=session.Query().Customize(x=>x.waitfornonstaleresultsafsoflastwrite()).Skip(0.Take(1024);
entities=queryable.ToArray();
foreach(实体中的var eventEntity)
{
Assert.AreEqual(eventEntity.Key,“修改”);
}
}
}
PopulateEventsToRaven只需向数据库添加2048个非常简单的文档
第一个skip-take组合获取前1024个文档,修改文档,然后提交更改
下一个skip-take组合再次希望获得前1024个文档,但这次它获得了文档编号1024到2048,因此测试失败。为什么会这样,我又会期待第一个1024
编辑:我已经证实,如果我不修改文档,行为是正常的。问题是您没有指定订单,这意味着RavenDB可以自由选择要返回的项目,这些项目不一定与上次调用中返回的项目相同。 使用OrderBy,它将是一致的