C# 使用一个主键删除实体框架复合键

C# 使用一个主键删除实体框架复合键,c#,entity-framework-6,repository-pattern,C#,Entity Framework 6,Repository Pattern,以下是我在作业中的一些数据库设计 Customer -------- CustomerID (PK) Cake ------- CakeID (PK) Cart ------- CustomerID (PK, FK) CakeID (PK, FK) 我想在我的购物车存储库类中创建一个函数clearUserCartUser,但我不知道如何使用该函数删除指定用户的所有行 编辑: 我已经找到了方法,只需使用getCartOfUserUser用户返回列表。然后执行foreach循环以删除。 在SQ

以下是我在作业中的一些数据库设计

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

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

Cart
-------
CustomerID (PK, FK)
CakeID (PK, FK)
我想在我的购物车存储库类中创建一个函数clearUserCartUser,但我不知道如何使用该函数删除指定用户的所有行

编辑: 我已经找到了方法,只需使用getCartOfUserUser用户返回列表。然后执行foreach循环以删除。 在SQL中,只需从Cart中删除一行即可,其中CustomerID=,实体框架中是否有等效的单行语句?

1您可以使用context.Carts.RemoveRangequeryable.WHERE c=>c.CustomerID==。
2您可以添加对context.Carts.Wherec=>c.CustomerID==.Delete的引用并像这样使用语法context.Carts.Wherec=>c.CustomerID==.Delete

如果您使用的是EF 6,则可以使用RemoveRange方法

所以它可能看起来像这样

context.Cart.RemoveRange(cartItem => cartItem.CustomerID == CustomerToDelete);
我认为读书对你有帮助