L2S: только конкретные доходы - PullRequest
0 голосов
/ 24 июня 2011

У меня есть две таблицы, назовите их Сотрудник и Контакты.

Контакты имеют отношение «один к одному» с EmployeeID по EmployeeID. Я пытаюсь получить всех сотрудников, у которых может быть коллекция значений контактов, хранящихся в их именах, используя 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.

Я пробовал разные сценарии, но могу найти что-то простое и дешевое для выполнения.

Заранее спасибо за помощь.

Эрик

Ответы [ 3 ]

1 голос
/ 25 июня 2011

сотрудников, которые могут иметь набор значений контактов

Возможно, вы имели в виду:

from e in db.Employees
where e.Contacts.Any()
select e
1 голос
/ 25 июня 2011

Попробуйте это:

var employee = (from e in db.Employees 
where e.Contacts.Any()
select e);

Это выберет всех сотрудников, у которых есть хотя бы одна запись контакта, связанная с ней.

Обратите внимание, что .Select(x => x.EmployeeID == e.ID) является избыточным, поскольку e.Contacts являетсяколлекция только тех контактов, которые связаны этим внешним ключом.

0 голосов
/ 25 июня 2011

Попробуйте:

var employee = (from e in db.Employees 
where e.Contacts.Select(x => x.EmployeeID).Contains(e.ID) 
select e);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...