使用 linq to Sql Except 条件选择整个表

本文关键字:选择 条件 Except linq to Sql 使用 | 更新日期: 2023-09-27 17:56:18

我正在使用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)); }

有人可以建议我如何在第一个查询本身中获取整个表吗?

使用 linq to Sql Except 条件选择整个表

第一个查询的末尾使用.ToList()。 这会强制将查询执行、枚举并实现到结果中,而不是保留为抽象语法树。