0
我想从ravendb中选择和更新多行,但它递归更新相同的行。即前100行。没有变化。Ravendb选择 - 更新多行
这是我的代码。我怎样才能选择一些行,更新每行的一些字段,并一次又一次地做,直到我的工作完成。
var currentEmailId = 100;
using (var session = store.OpenSession())
{
var goon = true;
while(goon){
var contacts = session.Query<Contacts>().Where(f => f.LastEmailId < currentEmailId).Take(100);
if(contacts.Any()){
foreach(var contact in contacts){
EmailOperation.Send(contact, currentEmailId);
contact.LastEmailId = currentEmailId;
}
session.SaveChanges();
}
else{
goon = false
}
}
}
does WaitForIndexesAfterSaveChanges是安全的吗?例如只有一秒钟。 –
是的,它很安全。它会阻塞,直到适当的索引更新,这样你就不会查询陈旧的数据。 (我现在习惯于在我的生产应用中定期打电话。) –
通常会更新多少个联系人?十?数百?成千上万的?正如我在帖子末尾提到的,如果您在调用此函数时更新多个联系人,则可能需要考虑Streaming + BulkInsert。它会更快,你不必处理陈旧的索引。 –