Operazioni batch dell'estensione di Entity Framework rispetto alle operazioni bulk di EFE


Domanda

Stavo esaminando le estensioni di Entity Framework per le operazioni di massa e ho trovato dagli stessi sviluppatori EF Plus. Ora EFE ha operazioni di massa che vengono pagate e EF PLus ha operazioni batch, che pretendono di eseguire l'aggiornamento in blocco e solo l'eliminazione, ma sono chiamate operazioni batch. Quindi qual è la differenza tra le operazioni bulk EFE e le operazioni EF plus?

Risposta accettata

Disclaimer : sono il proprietario del progetto Entity Framework Extensions

Disclaimer : sono il proprietario del progetto Entity Framework Plus

Esiste un'enorme differenza tra i metodi chiamati Bulk Operation e Batch Operation .

Operazione batch

L'operazione di Bach esegue un'operazione nel database senza caricare i dati nel contesto. In breve, tutto è fatto dal lato del database.

Entrambe le librerie lo supportano e alla fine sarà supportato in una libreria (gratuitamente, indipendentemente dalla decisione della biblioteca)

In EFE, i metodi sono denominati:

  • DeleteFromQuery
  • UpdateFromQuery

In EF +, i metodi sono denominati:

  • Elimina
  • Aggiornare

Operazione di massa

L'operazione di massa esiste solo nell'EFE. Sono operazioni immediate che prendono un elenco di entità e le salva con il database.

  • Salva modifiche in blocco
  • Inserto di massa
  • Elimina in blocco
  • Aggiornamento collettivo
  • Unisci in massa

Esempio

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




Autorizzato sotto: CC-BY-SA
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché