Réalisation d'insertions groupées avec SqlBulkCopy à partir d'une liste d'objets
SqlBulkCopy est un outil puissant pour une insertion efficace de données dans SQL Server. Lors de la gestion d’un grand nombre d’objets, l’exploitation de cette fonctionnalité peut améliorer considérablement les performances. Un défi potentiel survient lorsque les données sont stockées dans une liste<> d'objets simples, ce qui soulève la question de savoir comment effectuer une insertion groupée à l'aide de SqlBulkCopy.
Implémentation d'IDataReader personnalisée
Une option consiste à implémenter un IDataReader personnalisé qui expose les données dans la liste<> dans un format compatible avec SqlBulkCopy. Cependant, cette approche peut prendre du temps et des ressources.
Approche alternative avec FastMember
FastMember est une solution alternative avec une efficacité et une facilité d'utilisation améliorées. Cette bibliothèque permet la conversion directe d'une liste<> dans un format consommable par SqlBulkCopy :
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
Dans cet extrait de code, le composant ObjectReader de FastMember convertit le List<> d'objets dans un flux de données compatible avec SqlBulkCopy. En spécifiant les mappages de colonnes souhaités (par exemple, « Id », « Name », « Description »), le processus de transfert de données peut être personnalisé selon les besoins.
Avantages de l'utilisation d'ObjectReader
Les avantages de l'utilisation d'ObjectReader incluent :
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!