使用LINQ从一组记录中删除某些记录

时间:2012-11-29 23:32:10

标签: c# linq-to-entities

问题 - 如何从LINQ中删除某些记录,就像我有一些记录,我希望它们从我的LINQ中删除。

场景 - 我有表10有10条记录,表B有2条记录我要删除属于B的记录,要从A中删除[使用linq] - 我在q中有所有记录,我想删除p中的记录。

var p = from c in q
        join dr in dc.TableData on c.Id equals dr.CaseId
        select new View()
        {
            ActiveCaseId = c.ActiveCaseId,
            Id = c.Id                            
        };

q = q.Except(p);

1 个答案:

答案 0 :(得分:1)

您显示的Except无法执行此操作,因为pq是不同的类型。但它也有点笨拙。

您可以在一个查询中执行此操作:

var p = from c in q
        where !dc.TableData.Any(dr => dr.CaseId == c.Id)
                        select new View()
                        {
                            ActiveCaseId = c.ActiveCaseId,
                            Id = c.Id                            
                        };