Linq to Entities - 从链接/联结表中删除

时间:2009-09-30 14:36:37

标签: linq-to-entities

我正在建立一个电子商务网站,产品分为多个类别。因此,我有一个Products表,一个Categories表和一个包含所有productId / CategoryId组合的ProdCat链接/联结表。

使用Linq To Entities(我今天第一次使用)执行更新时,我感到很茫然。我首先需要删除给定产品ID的所有条目,然后执行所有相关详细信息的插入。我想我有插入,但任何人都可以给我一个如何删除的例子吗?

我已经对网络进行了搜索,看起来Linq to Entities在它与Linq To SQL方面被认为是“前进的方向”,但它似乎并不像Linq To Sql那样“容易”学习。 / p>

感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:1)

我今天遇到了类似的问题,传感器,传感器组和接合表在两者之间产生了多对多的关系。我想出的解决方案是:

var delGroup = db.SensorGroups.Single(g => g.GroupId == groupId);

foreach (var sensor in delGroup.Sensors.ToList())
{
    delGroup.Sensors.Remove(sensor);
}

db.SaveChanges();

答案 1 :(得分:0)

您无法在LINQ-to-Anything中删除。不在LINQ to SQL中,不在LINQ to Entities中,也不在LINQ to Objects中。

要在EF中删除,请执行以下操作:

Context.DeleteObject(someObject);

所以要删除所有ID,你可以这样做:

var q = from entry in Context.SomeEntitySet
        where entry.Product.Id == someId
        select entry;
foreach (var entry in q)
{
    Context.DeleteObject(entry);
}
Context.SaveChanges();