2017-06-29 5 views
1

Bis jetzt habe ich durch das Schreiben einer einzelnen Zeile wurde gelöscht:löschen mehrere Zeilen in Linq C#

Role role = new Role(); 
role = context.Roles.SingleOfDefault(p => p.Rolename == rolename); 
context.Roles.DeleteOnSubmit(role); 
context.SubmitChanges(); 

Jetzt muss ich aus Rollen Permission Tabelle löschen alle Berechtigungsregeln, er habe, so möchte ich mit dem spezifischen RoleId zum Löschen mehrere Zeilen aus RolePermission-Tabelle (RolePermission-Tabelle enthält RoleId-Spalte). Gibt es einen ähnlichen Weg, dies zu tun?

+0

Mögliches Duplikat von [LINQ to sql batch delete] (https://stackoverflow.com/questions/654561/linq-to-sql-batch -delete) – Random

+0

Warum instanziiert man eine neue 'Role' und weist sie dann einfach neu zu? – Enigmativity

Antwort

0

Nach genug, um auf der Suche im Internet Ich habe die Antwort auf meine Frage gefunden, und ich habe es in Stackoverflow gefunden. Sie können den folgenden Link von der Frage und der richtigen Antwort finden: How to Delete multiple records in Linq to Entity?

3

Sie haben die DeleteAllOnSubmit Methode:

context.RolePermission.DeleteAllOnSubmit(
      context.RolePermission .Where(p=> p.RoleId == role.RoleId)); 
+0

Zunächst scheint es, dass diese Abfrage mehrere Spalten aus der Role-Tabelle löschen würde. Ich möchte mehrere Zeilen aus der RolePermission-Tabelle mithilfe von roleid löschen. Und zweitens habe ich diesen Befehl versucht, aber leider funktioniert es nicht. Vielen Dank für Ihre Hilfe! –

+0

@ L. Achilles festen Tippfehler. – user3185569

+0

@ L.Achilles hast du Änderungen speichern danach? – user3185569