1

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

场景 - 我有 10 条记录的表 A 和 2 条记录的表 B 我想删除属于 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);
4

1 回答 1

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                            
                        };
于 2012-11-29T23:41:38.747 回答