2017-04-12 2 views
0

Voici quelques-unes de ma conception de base de données sur mes missionsEntity Framework clé composite supprimer avec une clé primaire

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

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

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

Je voudrais faire une fonction clearUserCart(User user) dans mon panier classe Repository, mais je ne sais pas comment faire fonction pour supprimer toutes les lignes avec l'utilisateur spécifié.

EDIT: J'ai compris comment le faire, il suffit d'utiliser getCartOfUser(User user) qui retourne List<Cart>. Ensuite, faites foreach loop pour supprimer. En SQL, il pourrait être atteint juste par une ligne DELETE FROM Cart WHERE CustomerID = <the cust id>, est-ce qu'il y a une instruction de ligne équivalente dans le framework d'entité?

+0

Je pense que la lecture [ce] (https://support.microsoft.com/en-us/help/2802240/crud-using-entity-framework-in-.net-framework-5.0--- supprimer) vous aidera –

Répondre

0

1) Vous pouvez utiliser context.Carts.RemoveRange(queryable.Where(c => c.CustomerID == <the cust id>)).
2) Vous pouvez ajouter une référence à Entity Framework Extended Library et utiliser comme cette syntaxe context.Carts.Where(c => c.CustomerID == <the cust id>).Delete()

1

Si vous utilisez EF 6, vous pouvez utiliser la méthode RemoveRange.

Cela pourrait ressembler à ceci:

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