Opérations par lots de l'extension Entity Framework par rapport aux opérations en bloc d'EFE

c# entity-framework-6 entity-framework-extensions entity-framework-plus

Question

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?

Réponse acceptée

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 .

Opération par lots

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:

  • DeleteFromQuery
  • UpdateFromQuery

Dans EF +, les méthodes sont nommées:

  • Effacer
  • Mettre à jour

Opération en vrac

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.

  • Sauvegarde en vracChangements
  • Insert en vrac
  • Suppression en masse
  • Mise à jour en vrac
  • Fusion en vrac

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;
});



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi