2013-08-22 47 views
0

我正在學習LINQ。SQL Server到LINQ組通過有

我在SQL Server中:

create table Something(id int, num int) 

insert into Something(id, num) values(1, 10); 
insert into Something(id, num) values(1, 10); 
insert into Something(id, num) values(2, 7); 
insert into Something(id, num) values(2, 7); 
insert into Something(id, num) values(2, 7); 
insert into Something(id, num) values(3, 5); 
insert into Something(id, num) values(3, 5); 
insert into Something(id, num) values(3, 5); 
insert into Something(id, num) values(3, 5); 
insert into Something(id, num) values(3, 5); 
insert into Something(id, num) values(3, 5); 
insert into Something(id, num) values(4, 5); 

select id 
from something 
group by id, num 
having count(*) < num 

結果是:4,2和1

我想在LINQ:

var query = 
(from m in lst 
group m by new { m.id, m.num } into g 
where g.Count() < m.num).ToList(); 

我想比較g.Count ()與「num」字段,但在我的代碼有問題

Thansk爲您提供幫助!

+2

發生了什麼。你能比「不跑」更具體嗎?謝謝 –

回答

2

嘗試g.key.num而不是m.num

var query = 
(from m in lst 
group m by new { m.id, m.num } into g 
where g.Count() < g.key.num).ToList(); 
+0

完美!謝謝 – jvaldezb