Ho iniziato a utilizzare EFCore.BulkExtensions per le operazioni bulk di ef e sta funzionando molto bene.
(consultare https://github.com/borisdj/EFCore.BulkExtensions/ )
devo chiamare anche a SaveChanges:
using (var db = new ReportingContext())
{
db.BulkInsertOrUpdate(entities);
db.SaveChanges();
}
o questo è abbastanza buono?
using (var db = new ReportingContext())
{
db.BulkInsertOrUpdate(entities);
}
La pagina dal link contiene quanto segue
Under the hood utilizza SqlBulkCopy per Insert, per Update / Delete combina BulkInsert con Raw Sql MERGE (MsSQL 2008+).
Quindi la risposta è no, non è necessario chiamare SaveChanges
perché EFCore.BulkExtensions funziona direttamente con il database (SqlServer). Le entità che passi non possono nemmeno essere attaccate (tracciate) al contesto. Utilizza il contesto solo per ottenere metadati del modello di entità e informazioni sulla connessione / transazione.