Zaimplementuj logikę „nie w” (inaczej „nie istnieje”) w LINQ

Ustawiaćmam dwaList<T>jest.Dane są unormowane i pochodzą z różnych źródeł, co wyjaśnia splot pożądanej logikiNieformalny klucz złożony w danych to fieldA, fieldB, fieldC.„Pola” są ciągami znaków - typami referencyjnymi - więc ich wartości mogą być puste. Chcę usunąć rekordy, które mogą pasować na wartości null. Dostaję, że null referencje w C # będą pasować, ale w SQL nie. Dodawanie a!string.IsNullOrEmpty() jest dość łatwe.To nie jest pytanie o projekt DB lub relacyjną algebrę.Mam inną logikę, która obejmuje inne kryteria. Nie sugeruj zmniejszania przedstawionej logiki tak, aby mogła ona poszerzyć zestaw wyników. Patrz # 5 powyżej.Problem

Chcę znaleźć rekordy w listA, które nie znajdują się w listB na podstawie nieformalnego klucza. Następnie chcę jeszcze bardziej zawęzić wyniki listyA na podstawie częściowego dopasowania klucza.

Wersja SQL problemu:

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  

questionAnswers(1)

yourAnswerToTheQuestion