我正在使用linq到sql查询来比较两个不同表的结果。例如,假设我的第一个表具有 Id 和电子邮件列,我的第二个表仅具有电子邮件列。如何使用 linq - 相交/except 条件从第一个表中选择所有内容(包括 Id 列),但不选择第二个表中的所有内容。
我正在使用 linq 查询,如下所示:
var result = table1.Select(t => t.Email).Except(table2);
查询工作正常,但问题是,除非我编写另一个 foreach 循环,否则我无法从结果中获取 Id 值。
例如:
foreach(var email in result) { table1.Where(t => t.Email.Equals(email)); }
有人可以建议我如何在第一个查询本身中获取整个表吗?
在
第一个查询的末尾使用.ToList()
。 这会强制将查询执行、枚举并实现到结果中,而不是保留为抽象语法树。