0

我想使用基于类似 id 的 linq 删除多条记录我知道一次删除单个 id 但如果链接 id 相同,我希望它删除所有数据。这是下面的代码,其中现在删除了所有行的单个链接 ID 行。

 VFDataClassesDataContext con = new VFDataClassesDataContext(Globals.con);
 LocationSetting LocationSettings = con.LocationSettings.First(w => w.LinkId == 1);
            con.LocationSettings.DeleteOnSubmit(LocationSettings);
            con.SubmitChanges();

如果我发送一个 id 1 来删除行,那么如果有多个记录与 id 1 链接,那么所有记录都将被删除。

表是这样的 ID,LinkID,Value,Type,TimeDate

价值是这样的

1, 0 , USA , R , 2013-10-25 20:09:29.043
2, 0 , UAE , R , 2013-10-25 20:09:29.043
3, 0 , AUS , R, 2013-10-25 20:09:29.043
4, 1 , SA , A , 2013-10-25 20:09:29.043
5, 1 , UA , A , 2013-10-25 20:09:29.043
6, 1 , AS , A , 2013-10-25 20:09:29.043
7, 2 , SA , A , 2013-10-25 20:09:29.043
8, 2 , UA , A , 2013-10-25 20:09:29.043
9, 2 , AS , A , 2013-10-25 20:09:29.043

这种方式是同一张表中的数据

4

1 回答 1

1

查询您要删除的项目并将它们传递给DeleteAllOnSubmit()方法。

听起来您想删除多个具有相同LinkId. 将它们分组LinkId并取该组有多个项目的项目。

var query =
    from ls in context.LocationSettings
    group ls by ls.LinkId into g
    where g.Count() > 1
    from ls in g
    select ls;
context.LocationSettings.DeleteOnSubmit(query);
context.SubmitChanges();
于 2013-10-25T16:02:23.107 回答