Klauzula WHERE IN z dwoma parametrami w linq

Klauzula WHERE IN z dwoma parametrami w linq
P1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

Gdy mam WHERE IN z jednym parametrem to uzywam Contains ale gdy mam dwa parametry to nie dziala. Musze takie podzapytanie w SQL napisac w linq:

Kopiuj
SELECT ename, sal, deptno
FROM emp
WHERE (sal, deptno) IN
(SELECT MIN(sal), deptno
FROM emp
GROUP BY deptno);

Napisalem tyle i nie wiem co zrobic z tym Contains

Kopiuj
var min = (from emp in Emps
                       group emp by new { Dzial = emp.Deptno} into grouped
                       select new
                       {
                           grouped.Key.Dzial,
                           wynik = grouped.Min(x => x.Sal)
                       });

            var result = (from emp in Emps
                          where min.Contains(emp.Deptno, emp.Sal)
                          select new
                          {
                              emp.Ename,
                              emp.Sal,
                              emp.Deptno
                          });
somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

W sensie chcesz przepisać z SQL do EF tak aby ten EF wygenerował taki sam jak oryginalny kod SQL?
To się raczej nie uda. Zła technologia, a i idea dziwna.

BE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0
Kopiuj
var result = Emps
                .GroupBy(x => x.deptno)
                .Select(g => g.OrderBy(x => x.sal).FirstOrDefault());

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.