1

SqlServer データベースに保持されているドキュメントを RavenDB データベースに転送しています。プロセスは単純ですが、RavenDB の「安全第一」の原則に沿って、最初の 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

1回の操作で必要なドキュメントの量を保存できます。変更をチャンクで保存する必要はありません。

于 2012-05-28T13:18:31.547 に答える