繁体   English   中英

Linq2sql连接查询以显示名称列表,但仅显示在另一个表中具有记录的名称

[英]Linq2sql join query to show list of names but only show ones that have record in another table

我有一个员工表,我目前正在使用该表中的名称填充组合框。 我还有一个名为expenseHdr的相关表,其中包含员工pk。 我的表结构如下所示:

employees     expenseHdr
empPk         expPk
name          expenseType
              empPk

现在它正在过滤名称,但它正在重复其在expenseHdr中的每条记录的名称。 我怎么才能让它只显示一次名字? 谢谢!

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM