В псевдокоде это то, что вы должны сделать (левое соединение):
List<int?> listA = new List<int?>() { 1, 2, 3, 4, 5, 6, 7 };
List<int?> listB = new List<int?>() { 1, 2, 3, 4, 5 };
var result = (from a in listA
join b in listB on a equals b into subset
from c in subset.DefaultIfEmpty()
where !c.HasValue
select a).ToList();
при этом будет получен список значений, равный 6 и 7.
Вы должны смотреть на значения здесь, как если бы они были PK и FK в ваших таблицах.