Linq2sql 联接查询以显示名称列表,但仅显示另一个表中有记录的名称
本文关键字:显示 另一个 记录 列表 查询 Linq2sql | 更新日期: 2023-09-27 18:33:27
我有一个员工表,我目前正在用该表中的名字填充组合框。我还有一个名为 expenseHdr 的相关表,其中包含员工 pk。我的表结构如下所示:
employees expenseHdr
empPk expPk
name expenseType
empPk
现在它正在过滤名称,但它正在重复费用Hdr中每条记录的名称。如何让它只显示每个名称一次?谢谢!
var emps = (from emp in db.employees
join exp in db.expenseHdrs on emp.pk equals exp.empPk
where emp.active == true
orderby emp.name
select emp.name.Substring(0, 20)).ToList();
cboEmployee.DataSource = emps;
您可以使用
Any()
var emps = (from emp in db.employees
where emp.active && emp.expenseHdrs.Any()
orderby emp.name
select emp.name.Substring(0, 20)).ToList();
cboEmployee.DataSource = emps;
如果表之间没有数据库关系,则改为编写:
where emp.active && db.expenseHdrs.Any(exp => emp.pk == exp.empPk)