Итак, у меня есть две таблицы Site и Contact, которые имеют отношения «многие ко многим» через таблицу ContactSites. Обе таблицы Site и Contact имеют логический атрибут Deleted. Я пытаюсь написать запрос LINQ, в котором перечислены все контакты с удаленным атрибутом = false и со связанными сайтами, которые также имеют удаленный атрибут = false
Вот код, который я использую:
from c in Contacts
where c.Deleted == false
select new{c.LName, c.FName, SiteContactSites =
(from cs in ContactSites
where cs.Contact_ID == c.ID
select new{ cs.Contact_ID, cs.Site_ID, Sites =
(from s in Sites
where cs.Site_ID == s.ID &&
s.Deleted == false
select cs).First()}).First()}
но результаты, похоже, действуют как внешнее соединение по сравнению с внутренним соединением, которое я хочу.
Я специально ищу способ сделать это с вложенными подзапросами, а не с соединениями, которые будут:
from c in Contacts
join cs in ContactSites on c.ID equals cs.Contact_ID
join s in Sites on cs.Site_ID equals s.ID
where c.Deleted == false && s.Deleted == false
select c
Любая помощь приветствуется