Comment supprimer une ou plusieurs lignes de ma table à l'aide de Linq to Entities * sans * récupérer les lignes en premier?

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

  •  05-07-2019
  •  | 
  •  

Question

Je comprends que je peux mapper une procédure stockée de suppression sur la méthode de suppression pour un type particulier.

Toutefois, cela nécessite de transmettre un objet récupéré à la méthode DeleteObject de mon contexte.

C'est déjà assez grave, mais que se passe-t-il si je veux supprimer 2000 lignes? Puis-je faire cela avec Linq to Entities sans d'abord récupérer ces 2000 lignes de la base de données et en passant par une boucle appelant DeleteObject ?

Si cette fonctionnalité n'existe pas dans Linq to Entities et que vous savez que cela est le cas, indiquez-le simplement et explorons les autres options!

S'il n'existe pas directement, est-ce que je pourrais le faire en canalisant un processus stocké via Linq vers les entités?

Était-ce utile?

La solution

Oui, vous pouvez le faire. De ce conseil :

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

Voir le conseil complet pour plus de détails et de complications.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top