Insertion de grands ensembles de données avec SqlBulkCopy et des listes
Question : Comment insérer efficacement de grands ensembles de données dans une table de base de données à l'aide de SqlBulkCopy lorsque la source de données est une liste de simples objets ?
Réponse :
Envisagez de tirer parti de FastMember pour simplifier le processus sans compter sur des structures de données intermédiaires comme DataTable. Cela peut améliorer considérablement les performances. Voici un exemple :
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
ObjectReader de FastMember peut gérer des sources de données non génériques et prend en charge la spécification dynamique des noms de membres sans les définir explicitement à l'avance. Cependant, l'utilisation des ColumnMappings de SqlBulkCopy peut être bénéfique si vous ne spécifiez pas de noms de membres dans ObjectReader.
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!