Как заставить SqlBulkCopy работать с MS Enterprise Library?
У меня есть код, который использует SqlBulkCopy. И теперь мы рефакторингуем наш код, чтобы использовать функции базы данных корпоративной библиотеки вместо стандартных. Вопрос в том, как я могу создать экземпляр SqlBulkCopy? Он принимает SqlConnection, а у меня есть только DbConnection.
var bulkCopy = new SqlBulkCopy(connection) // here connection is SqlConnection
{
BatchSize = Settings.Default.BulkInsertBatchSize,
NotifyAfter = 200,
DestinationTableName = "Contacts"
};
1 ответ:
Очень просто, мы используем его так, и он отлично работает:
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