Похоже, что ваш желаемый результат состоит в том, чтобы идентифицировать элементы из Table1
, которые не дали результатов во время левого внешнего соединения, с Table2
.
В беглой нотации подход будет похож на это:
var query = db.Table1.GroupJoin(db.Table2,
t1 => t1.Id,
t2 => t2.t1Id,
(t1, joined) => new { t1, joined }
)
.SelectMany(r => r.joined.DefaultIfEmpty(), (r, j) => new
{
r.t1,
j
})
.Where(r => r.j == null)
.Select(r => r.t1);
В синтаксисе запроса:
var query = from t1 in db.Table1
join t2 in db.Table2 on t1.Id equals t2.t1Id into joined
from j in joined.DefaultIfEmpty()
where j == null
select t1;