Как заставить SqlBulkCopy работать с MS Enterprise Library? - PullRequest
5 голосов
/ 28 июля 2010

У меня есть код, который использует SqlBulkCopy. И теперь мы реорганизуем наш код, чтобы использовать функции базы данных Enterprise Library вместо стандартных. Вопрос в том, как мне создать экземпляр SqlBulkCopy? Он принимает SqlConnection, и у меня есть только DbConnection.

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

1 Ответ

8 голосов
/ 29 июля 2010

Действительно просто, мы используем его таким образом, и он отлично работает:

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

...