Простое решение для LEFT OUTER JOIN:
var setA = context.SetA;
var setB = context.SetB.Select(st=>st.Id).Distinct().ToList();
var leftOuter = setA.Where(stA=> !setB.Contains(stA.Id));
примечания:
- Для повышения производительности SetB можно преобразовать в словарь (если это будет выполнено, тогда вы необходимо изменить это:! setB.Contains (stA.Id)) или HashSet
- Если задействовано более одного поля, это может быть достигнуто с помощью операций Set и класса, которые реализуют: IEqualityComparer
задан Artyom Pstygo 19 June 2018 в 19:11
поделиться