2014-11-28 1 views
22

Ich habe Tabelle wie das folgende Bild:So löschen Sie mehrere Datensätze mit Entity Framework ASP.Net MVC 5?

enter image description here

wie kann ich alle Datensätze der Tabelle löschen Framework Entity basierend auf projectID?

+0

möglich Duplikat [Wie kann ich mehrere Zeilen in Entity Framework (ohne foreach) löschen] (http://stackoverflow.com/questions/2519866/how- do-i-delete-multiple-rows-in-entity-framework-ohne-foreach) – markpsmith

+2

Ich interessiere mich nicht mit foreach oder ohne foreach Ich möchte eine gute Möglichkeit, Datensätze basierend auf ProjectId –

Antwort

60

Dieses Motto wird es tun:

db.ProRel.RemoveRange(db.ProRel.Where(c => c.ProjectId == Project_id)); 
+0

Großartig und wirklich einfach und perfekte Antwort dank sehr es funktioniert perfekt –

+0

Kein Problem, ich bin glücklich, Ihr Problem gelöst zu haben. –

+0

Einfache und elegante Lösung, danke! – Nimblejoe

13
context.Projects.Where(p => p.ProjectId == projectId) 
       .ToList().ForEach(p => context.Projects.Remove(p)); 
context.SaveChanges(); 

Aus dieser very similar post (die wahrscheinlich als doppelt markiert werden sollte).

+0

zu löschen Ich glaube, Sie haben tatsächlich vergessen löschen. –

+0

@KirkWoll ForEach (context.Projects.DeleteObject); löscht sie –

+0

um ... nein, das ist nicht richtig. –

4

Sie können DbSet.RemoveRange() verwenden und eine IEnumerable<Model> übergeben.

Sie erstellen eine Liste von Modellen mit ProjectId und übergeben sie in RemoveRange() mit dem Datenkontext. Schließlich rufen Sie SaveChanges().

+0

Ich bin neu in ASP.Net MVC und Entity Framework können Sie Beispiel im Detail geben mein Tabellenname ist ProvRel Wie kann ich mehrere Datensätze aus dieser Tabelle löschen Basierend auf ProjectId –

+0

Kein Problem, ich muss mehr Code sehen. Ich brauche deinen Datenkontext und dein Datenmodell. – beautifulcoder

+0

private MYDBContext db = neu MYDBContext(); –