1

我正在将保存在 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();
    }
}
4

1 回答 1

2

您可以在一次操作中存储所需的文档数量。无需分块保存更改。

于 2012-05-28T13:18:31.547 回答