2016-03-27 4 views
0

Ich benutze Entity Framework.Löschen Sie mehrere Elemente C# EF

Hier ist alles korrekt, eliminiert die Anzahl der Datensätze, die ich auswähle. aber nur fortlaufend, möchte ich löschen nur ausgewählte Artikel, wenn ich eine Liste von ID { 1,2,3,4 } habe und ich möchte die 1 und 3 löschen, funktioniert es nicht, dass Code löscht die 1 und 2 zum Beispiel.

Ich verwende ein Kontrollkästchen in der DataGridView, klicken Sie auf eine Schaltfläche.

+0

Ugh ... deshalb bin ich mit 'PetaPoco' in diesen Tagen ... – code4life

Antwort

0

Ich rate. Bevor Sie die Entitäten tatsächlich löschen, versuchen Sie zuerst, sie dann zu finden und in eine separate Sammlung zu setzen, dann in separate Schleife entfernen Sie sie aus der DB und rufen Sie dann die Änderungen speichern auf Kontext. Meine Wette ist, dass Sie die Sammlung, an der Sie loopen, irgendwie ändern. Das verursacht Ihnen das Problem mit dem selektiven Löschen.

+0

Dies ist, was im ... versuchen zu tun, aber ich kann bekommen identifizieren die Elemente, die ich löschen möchte –

0

Ich glaube, Ihr Problem in diesem Bit befindet:

.Where(m => m.ID== m.ID) 

Sie die ID im Filter mit der ID im Filter zu vergleichen (was immer wahr sein). Ich denke, Sie möchten etwas wie:

... außer der Code, um Ihre ID aus Ihrer Zeile ist wahrscheinlich genau das. :)

0

EntityFramework.Extended hat eine wirklich schöne Erweiterungsmethode für diese Art von Jobs. Sie finden weitere Details here.

Beispiel von Dokumentationsseite:

//delete all users where FirstName matches 
context.Users 
    .Where(u => u.FirstName == "firstname") 
    .Delete();