Operaciones por lotes de la extensión de Entity Framework frente a las operaciones masivas de EFE

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

Pregunta

Estaba buscando en las extensiones de Entity Framework para operaciones masivas y encontré en los mismos desarrolladores EF Plus. Ahora EFE tiene operaciones masivas que se pagan y EF PLus tiene operaciones por lotes, que pretenden realizar solo la actualización y eliminación masivas, pero se denominan operaciones por lotes. Entonces, ¿cuál es la diferencia entre las operaciones en masa de EFE y las operaciones por lotes EF más?

Respuesta aceptada

Descargo de responsabilidad : soy el propietario del proyecto Entity Framework Extensions

Descargo de responsabilidad : soy el propietario del proyecto Entity Framework Plus

Existe una gran diferencia entre los métodos que se denominan Bulk Operation y Batch Operation .

Operación por lotes

La operación de Bach realiza una operación en la base de datos sin cargar datos en el contexto. En resumen, todo se hace en el lado de la base de datos.

Ambas bibliotecas lo admiten y finalmente se admitirá en una biblioteca (de forma gratuita sin importar la decisión de la biblioteca)

En EFE, los métodos se denominan:

  • DeleteFromQuery
  • UpdateFromQuery

En EF +, los métodos se denominan:

  • Borrar
  • Actualizar

Operación a granel

La operación masiva solo existe en EFE. Son operaciones inmediatas que toman una lista de entidades y las guardan con la base de datos.

  • Guardar grandes cambios
  • Inserto a granel
  • Eliminar a granel
  • Actualización masiva
  • Fusión masiva

Ejemplo

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



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué