我正在将保存在 SqlServer 数据库中的文档传输到 RavenDB 数据库。这个过程很简单,但根据 RavenDB 的“安全第一”原则,实际上只存储了前 128 个文档。
我理解为什么会这样,我也知道这个限制可以针对整个文档存储进行调整,但是,鉴于在给定操作中存储超过 128 个文档并不少见,我想知道什么是最好的实践是什么?
这是我的代码,展示了我如何绕过限制的示例。有没有更优雅的方式?
public static void CopyFromSqlServerToRaven(IDocumentSession db)
{
var counter = 0;
using (var connection = new SqlConnection(SqlConnectionString))
{
var command = new SqlCommand(SqlGetContentItems, connection);
command.Connection.Open();
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
counter++;
db.Store(new ContentItem
{
Id = reader["Id"].ToString(),
Title = reader["Name"].ToString(),
Description = reader["ShortDescription"].ToString()
});
if (counter < 128) continue;
db.SaveChanges();
counter = 0;
}
}
db.SaveChanges();
}
}