2017-04-12 6 views
0

Hier einige meiner Datenbank-Design auf meine AufgabenEntity Framework zusammengesetzten Schlüssel löschen mit einem Primärschlüssel

Customer 
-------- 
CustomerID (PK) 

Cake 
------- 
CakeID (PK) 

Cart 
------- 
CustomerID (PK, FK) 
CakeID (PK, FK) 

Ich möchte eine Funktion clearUserCart(User user) in meinem Warenkorb Repository-Klasse machen, aber ich habe keine Ahnung, wie man Funktion um alle Zeilen mit dem angegebenen Benutzer zu löschen.

EDIT: Ich habe herausgefunden, wie es zu tun, nur getCartOfUser(User user) verwenden, die List<Cart> zurückgibt. Dann foreach Schleife zu entfernen. In SQL konnte es nur durch eine Zeile DELETE FROM Cart WHERE CustomerID = <the cust id> erreicht werden, gibt es eine entsprechende Zeile im Entity Framework?

+0

Ich denke Lesung [diese] (https://support.microsoft.com/en-us/help/2802240/crud-using-entity-framework-in-.net-framework-5.0--- löschen) wird Ihnen helfen –

Antwort

0

1) Sie context.Carts.RemoveRange(queryable.Where(c => c.CustomerID == <the cust id>)).
2 verwenden) Sie können anhand Entity Framework Extended Library hinzufügen und wie diese Syntax context.Carts.Where(c => c.CustomerID == <the cust id>).Delete()

1

Wenn Sie EF 6 verwenden, können Sie die RemoveRange Methode verwenden.

So könnte es in etwa so aussehen;

context.Cart.RemoveRange(cartItem => cartItem.CustomerID == CustomerToDelete); 
Verwandte Themen