RavenDB:在保存大量数据时处理128项限制的最佳做法是什么?

时间:2012-05-28 12:51:53

标签: c# ravendb

我将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();
    }
}

1 个答案:

答案 0 :(得分:2)

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