84 votes

En vrac-la suppression dans LINQ to entities

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.

52voto

Alex James Points 15939

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

Alex

43voto

Vlad Bezden Points 5024
    using (var context = new DatabaseEntities())
    {
        // delete existing records
        context.ExecuteStoreCommand("DELETE FROM YOURTABLE WHERE CustomerID = {0}", customerId);
    }

31voto

Shaul Points 8267

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.

7voto

Phil Strong Points 911

Les Réponses que je vois ici sont Linq to Sql

DeleteAllOnSubmit est la partie du Système.Les données.Linq et ITable qui est Linq to Sql

Cela ne peut être fait avec Entity Framework.

Ayant dit que je n'ai pas encore trouvé de solution mais nouveau quand je ne

2voto

Hemant Points 7612

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X