我有两个表,称为员工和联系人。
Contacts与EmployeeID上的Employee具有多对一关系。我正在尝试使用Linq-to-Sql检索所有可能存在与其名称存储的联系值集合的员工:
var employee = (from e in db.Employees
where e.Contacts.Select(x => x.EmployeeID == e.ID)
select e);
但这不起作用,因为e.Contact.Select(...)
会返回IQueryable<bool>
而不是bool
。
我一直在尝试不同的场景,但可以找到一些简单而便宜的东西。
感谢您的帮助。
埃里克
答案 0 :(得分:1)
试试这个:
var employee = (from e in db.Employees
where e.Contacts.Any()
select e);
这将选择至少有1个与之相关的联系人记录的所有员工。
请注意,.Select(x => x.EmployeeID == e.ID)
是多余的,因为e.Contacts只是与此外键相关的联系人的集合。
答案 1 :(得分:1)
可能拥有收藏品的员工 联系人价值
你的意思是:
from e in db.Employees
where e.Contacts.Any()
select e
答案 2 :(得分:0)
试试这个:
var employee = (from e in db.Employees
where e.Contacts.Select(x => x.EmployeeID).Contains(e.ID)
select e);