當我有一個參數的 WHERE IN 時,我使用 Contains 但是當我有兩個參數時它不起作用。我需要在 linq 中用 SQL 編寫一個子查詢:SELECT ename, sal, deptnoFROM empWHERE (sal, deptno) IN(SELECT MIN(sal), deptnoFROM empGROUP BY deptno);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 });我試圖將 Where 分成兩個獨立的部分,但這并沒有改變任何東西。
1 回答

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
您應該簡單地使用GroupBy,然后使用SelectMany在Where中應用您的“IN”條件,如下所示:
var result = Emps.GroupBy(g => g.Deptno).SelectMany(a => a.Where(b => b.Sal == a.Min(c => c.Sal)));
我還在 DotNetFiddle 上準備了一個小例子: https ://dotnetfiddle.net/p8aYJv
- 1 回答
- 0 關注
- 224 瀏覽
添加回答
舉報
0/150
提交
取消