Question : Comment insérer efficacement un grand nombre d'enregistrements à partir d'une liste<> d'objets simples à l'aide de SqlBulkCopy ?
Réponse :
Pour optimiser l'insertion groupée, envisagez d'utiliser la bibliothèque FastMember. Cette approche évite la surcharge de DataTable en diffusant directement les données de la liste d'objets. Voici comment procéder :
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
ObjectReader vous permet de travailler avec des sources de données non génériques et de déterminer dynamiquement les noms des membres. Toutefois, la spécification initiale des noms de membres améliore les performances. De plus, vous pouvez tirer parti de la fonctionnalité ColumnMappings de SqlBulkCopy pour personnaliser le mappage de colonnes.
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!