Maison > base de données > tutoriel mysql > Comment puis-je insérer efficacement des données en masse à partir d'une liste dans SQL Server à l'aide de SqlBulkCopy ?

Comment puis-je insérer efficacement des données en masse à partir d'une liste dans SQL Server à l'aide de SqlBulkCopy ?

Patricia Arquette
Libérer: 2024-12-30 13:44:18
original
578 Les gens l'ont consulté

How Can I Efficiently Bulk Insert Data from a List into SQL Server Using SqlBulkCopy?

Insertion de données à partir d'une liste à l'aide de SqlBulkCopy

Lorsque nous sommes confrontés à la tâche d'effectuer une insertion groupée à l'aide de SqlBulkCopy à partir d'une liste générique, il est naturel envisager d’implémenter un IDataReader personnalisé. Cependant, il existe une solution plus efficace et plus pratique utilisant la bibliothèque FastMember.

Solution avec FastMember

FastMember fournit une classe puissante appelée ObjectReader qui simplifie le processus de conversion d'une liste. d'objets dans un lecteur de données. Voici comment vous pouvez l'utiliser :

using(var bcp = new SqlBulkCopy(connection))
using(var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
    bcp.DestinationTableName = "SomeTable";
    bcp.WriteToServer(reader);
}
Copier après la connexion

Dans cet exemple, les données sont une liste d'objets contenant les propriétés « Id », « Nom » et « Description ».

ObjectReader peut fonctionnent également avec des sources de données non génériques et il n'est pas nécessaire de spécifier les noms des membres à l'avance. Cependant, si vous ne les spécifiez pas dans ObjectReader, vous souhaiterez peut-être utiliser l'aspect ColumnMappings de SqlBulkCopy pour définir le mappage entre les propriétés de l'objet et les colonnes de destination.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal