2013-09-05 2 views
3

У меня есть две таблицы «Сотрудники» и «EmployeesCompanies», Служащие содержит список всех сотрудников, и employeescompanies содержит список всех компаний, связанных с работником:Linq к SQL левое внешнее соединение не

 
Table 1 (Employees) 
EmployeeID 
1 
2 
3 

Table 2 (EmployeesCompanies) 
EmployeeID  
1 
2 

Я хочу вернуть 3, который является недостающим запись из EmployeesCompanies, вот код LINQ Я использую:

var queryOrphanedEmployees = (from a in db.Employees 
join b in db.EmployeesCompanies 
on a.EmployeeID equals b.EmployeeID 
into outer 
from c in outer.DefaultIfEmpty() 
select new { a.EmployeeID}).ToList(); 

Однако это возвращает:

 
1 
2 

Это совершенно противоположно тому, что я хочу.

ответ

2

Вы должны быть в состоянии сделать что-то вроде этого, если вы настроили внешние ключи правильно

from e in Employees 
where !e.EmployeesCompanies.Any() 
select e 
Смежные вопросы