J'ai du code qui utilise SqlBulkCopy. Et maintenant, nous réorganisons notre code pour utiliser les fonctions de base de données de la bibliothèque d'entreprise au lieu des fonctions standard. La question est comment puis-je instancier SqlBulkCopy? Il accepte SqlConnection, et je n'ai que DbConnection.Comment faire fonctionner SqlBulkCopy avec MS Enterprise Library?
var bulkCopy = new SqlBulkCopy(connection) // here connection is SqlConnection
{
BatchSize = Settings.Default.BulkInsertBatchSize,
NotifyAfter = 200,
DestinationTableName = "Contacts"
};
Oh, c'est vraiment facile. J'y ai pensé, mais je n'ai pas essayé. Avez-vous essayé d'utiliser TransactionScope avec SqlBulkCopy? J'ai quelque chose comme: connexion à l'aide (nouvelle TransactionScope()) { en utilisant (connexion var = db.CreateConnection()) { en utilisant (var BULKCOPY = new SqlBulkCopy ((SqlConnection)) {/ * blabla * /}} } et il jette System.Transactions.TransactionManagerCommunicationException dire que MSDTC est éteint, bien que je l'ai allumé. – HiveHicks
Non désolé. jamais utilisé TransactionScope. Nous utilisons le paramètre de transaction du paramètre SqlBulkCopy (la dernier paramètre du constructeur, 'null' dans l'exemple ci-dessus) –
Si vous avez juste besoin d'une transaction pour le BulkCopy, vous pouvez chan ge le deuxième paramètre de 'SqlBulkCopyOptions.Default' à' SqlBulkCopyOptions.UseInternalTransaction'. Voir http://msdn.microsoft.com/en-us/library/tchktcdk%28VS.80%29.aspx –