2013-08-22 46 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