请帮我删除LINQ表达式
我试图编写一个LINQ查询来维护一个不同的供应商列表请帮我删除LINQ表达式,linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,我试图编写一个LINQ查询来维护一个不同的供应商列表 Order - SupplierId UniqueSupplierList - Id - SupplierId 范例 Order Supplier1 Supplier1 Supplier2 UniqueSupplierList 1, Supplier1 2, Supplier2 现在,如果我更改订单3,以便: Order Supplier1 Supplier1 Suppli
Order
- SupplierId
UniqueSupplierList
- Id
- SupplierId
范例
Order
Supplier1
Supplier1
Supplier2
UniqueSupplierList
1, Supplier1
2, Supplier2
现在,如果我更改订单3,以便:
Order
Supplier1
Supplier1
Supplier1
我需要删除UniqueSupplierList,记录2,以生成
UniqueSupplierList
1, Supplier1
这是我正在努力解决的删除问题,需要帮助。我意识到这个示例有点做作,但我感兴趣的是delete LINQ示例
表之间没有外键
在SQL中,我可能会执行以下操作:
delete from UniqueSupplierList where supplierid not in (Select SupplierId from Order where...)
以下是一些LINQ代码:
db.UniqueSupplierList.Where(r.SupplierId!=????).ToList().ForEach(db.UniqueSupplierList.DeleteObject);
非常感谢。我假设您的数据库中也有一个
Orders
集合。在这种情况下:
var supplierIDs = db.Orders.Select(o => o.SupplierID).Distinct();
var toDelete = db.UniqueSupplierList.Where(usl => !supplierIDs.Contains(usl.SupplierID)).ToList();
toDelete.ForEach(td => db.UniqueSupplierList.Remove(td));
db.SaveChanges();
刚刚实现了这个,效果很好。我想我是想把每件事都做到一行!!但谢谢你,真的很感激。仅仅因为你有时能做一件事并不意味着你一定要做。我认为这种方式更好,因为它更清楚你想做什么。