Est-il possible de vrac-supprimer un tas d'objets correspondant à une requête donnée dans LINQ ou LINQ-to-Entités? Les seules références que j'ai pu trouver sont obsolètes, et il semble idiot de parcourir et supprimer manuellement tous les objets que je souhaite supprimer.
Réponses
Trop de publicités?Un temps, j'ai écrit un 4 partie blog de la série (Parties 1, 2, 3 et 4) couvrant le faire en bloc les mises à jour (avec une seule commande) dans le Cadre de l'Entité.
Bien que l'objectif de cette série a été mise à jour, vous pouvez certainement utiliser les principes de le faire supprimer.
Donc, vous devriez être capable d'écrire quelque chose comme ceci:
var query = from c in ctx.Customers
where c.SalesPerson.Email == "..."
select c;
query.Delete();
Tout ce que vous devez faire est de mettre en œuvre les Supprimer() la méthode d'extension. Voir le post de la série pour des conseils sur la façon...
Espérons que cette aide
La question est ancien (d'avant EF5 existé). Pour toute personne qui est à l'aide de EF5, EntityFramework.Étendue ne ce en un clin d'œil.
Je sais de DeleteAllOnSubmit méthode de contexte de données qui permet de supprimer tous les enregistrements de la requête. Il doit y avoir une optimisation sous-jacent depuis un grand nombre d'objets sont supprimés. Je ne suis pas sûr.