Реализовать логику «не в» (то есть «не существует») в LINQ

НастроитУ меня дваList<T> S. Данные не нормированы и получены из разных источников, что объясняет свертку в нужной логике Неофициальный составной ключ в данных - это fieldA, fieldB, fieldC. «Поля» - это строки - ссылочные типы, поэтому их значения могут быть нулевыми. Я хочу сбросить записи, где они могут совпадать на нуле. Я получаю, что нулевые ссылки в C # будут совпадать, но в SQL они не совпадают. Добавление!string.IsNullOrEmpty() достаточно просто. Это не вопрос дизайна БД или реляционной алгебры. У меня есть другая логика, которая охватывает другие критерии. Не предлагайте сокращать показанную логику, чтобы она могла расширить набор результатов. Смотрите № 5 выше.Проблем

Я хочу найти записи в списке A, которых нет в списке B, на основе неофициального ключа. Затем я хочу уточнить результаты listA на основе частичного совпадения ключей.

SQL-версия проблемы:

select 
    listA.fieldA, listA.fieldB, matching.fieldC  
 from listA
 left join listB keyList on 
      listA.fieldA = keyList.fieldA and
      listA.fieldB = keyList.fieldB and
      listA.fieldC = keyList.fieldC
 inner join listB matching on
      listA.fieldA = matching.fieldA and
      listA.fieldB = matching.fieldB 
 where
    keyList.fieldA is null  

Ответы на вопрос(1)

Ваш ответ на вопрос