Je cherchais des extensions Entity Framework pour les opérations en bloc et je les ai trouvées chez les mêmes développeurs, EF Plus. Maintenant, EFE a des opérations en bloc qui sont payées et EF PLus a des opérations par lots, qui prétendent effectuer uniquement la mise à jour et la suppression en bloc, mais qui sont appelées opérations par lots. Quelle est donc la différence entre les opérations en bloc de l'EFE et les opérations de traitement EF plus par lots?
Avertissement : je suis propriétaire du projet Entity Framework Extensions
Disclaimer : Je suis propriétaire du projet Entity Framework Plus
Il existe une énorme différence entre les méthodes appelées Bulk Operation
et Batch Operation
.
L'opération Bach effectue une opération dans la base de données sans charger de données dans le contexte. En bref, tout est fait du côté de la base de données.
Les deux bibliothèques le prennent en charge et il sera éventuellement pris en charge dans une bibliothèque (gratuitement, quelle que soit la décision de la bibliothèque).
Dans EFE, les méthodes sont nommées:
Dans EF +, les méthodes sont nommées:
L'opération en bloc n'existe que dans EFE. Ce sont des opérations immédiates qui prennent une liste d'entités et les enregistre avec la base de données.
Exemple
// Easy to use
context.BulkSaveChanges();
// Easy to customize
context.BulkSaveChanges(bulk => bulk.BatchSize = 100);
// Perform Bulk Operations
context.BulkDelete(customers);
context.BulkInsert(customers);
context.BulkUpdate(customers);
// Customize Bulk Operations
context.BulkInsert(customers, options => {
options => options.IncludeGraph = true;
});
context.BulkMerge(customers, options => {
options.ColumnPrimaryKeyExpression =
customer => customer.Code;
});