Реализовать логику «не в» (то есть «не существует») в 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