5

SqlBulkCopy を使用するコードがいくつかあります。そして現在、コードをリファクタリングして、標準のデータベース関数の代わりに Enterprise Library データベース関数を使用しています。問題は、SqlBulkCopy をインスタンス化する方法です。それは SqlConnection を受け入れ、私は DbConnection しか持っていません。

var bulkCopy = new SqlBulkCopy(connection)  // here connection is SqlConnection
{
    BatchSize = Settings.Default.BulkInsertBatchSize,
    NotifyAfter = 200,
    DestinationTableName = "Contacts"
};
4

1 に答える 1

8

本当に簡単です。そのように使用すると、完全に機能します。

using (DbConnection connection = db.CreateConnection())
{
    connection.Open();
    //blah blah

    //we use SqlBulkCopy that is not in the Microsoft Data Access Layer Block.
    using (SqlBulkCopy copy = new SqlBulkCopy((SqlConnection) connection, SqlBulkCopyOptions.Default, null))
    {
        //init & write blah blah
    }
}

解決策は、接続をキャストすることです:(SqlConnection) connection

于 2010-07-29T10:04:41.363 に答える