Come posso eliminare una o più righe dalla mia tabella usando Linq to Entities * senza * prima recuperare le righe?

StackOverflow https://stackoverflow.com/questions/1601350

  •  05-07-2019
  •  | 
  •  

Domanda

Comprendo di poter mappare una procedura memorizzata di eliminazione sul metodo di eliminazione per un tipo particolare.

Tuttavia, ciò richiede il passaggio di un oggetto recuperato al metodo DeleteObject del mio contesto.

Questo è abbastanza male, ma cosa succede se voglio eliminare 2000 righe? Posso farlo con Linq to Entities senza prima recuperare quelle 2000 righe dal database e passare attraverso un ciclo che chiama DeleteObject ?

Se tale funzionalità non esiste in Linq alle Entità, e tu sai che è così, quindi per favore dillo e analizzerò altre opzioni!

Se non esiste direttamente, potrei ottenerlo eseguendo il piping di un Proc memorizzato tramite Linq alle Entità?

È stato utile?

Soluzione

Sì, puoi farlo. Da questo suggerimento :

// Create an entity to represent the Entity you wish to delete
// Notice you don't need to know all the properties, in this
// case just the ID will do.
Category stub = new Category { ID = 4 };
// Now attach the category stub object to the "Categories" set.
// This puts the Entity into the context in the unchanged state,
// This is same state it would have had if you made the query
ctx.AttachTo("Categories", stub);
// Do the delete the category
ctx.DeleteObject(stub);
// Apply the delete to the database
ctx.SaveChanges();

Vedi la punta completa per dettagli e complicazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top