我将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();
}
}
答案 0 :(得分:2)
您可以在一次操作中存储所需的文档数量。无需保存块中的更改。