2016-02-10 133 views
2

我有一条需要转换为Linq-to-SQL的SQL语句。将SQL语句转换为带有2列的Linq-to-SQL(count)(*)不起作用

的作品的SQL语句是

Select 
    Comment, count(*) as counted 
from 
    [ESO].[ESO].[DOCCCOIssues] 
group by 
    comment 

的LINQ我有

var issueModel = new IssuesModel(); 

var query = (from c in DOCCCOIssues//.IssuesModels 
      //group c by c.Comment into g 
      select new 
      { 
       c.Comment, 
       //Count = g.Count() 
      }); 
  1. 我知道如何指定一堆领域的
  2. 我没有注释掉的一个例子的问题我看到有人在做一个团队 - 数不清如何让这个工作
  3. 我有se恩只得到select c).Count(),那是不是要我要

回答

5

一旦你已经完成了小组由你有一个列表,其中每个条目是iself的每个组中的事物的IEnumerable并具有Key的LINQ查询财产(你分组的东西,在这种情况下是Comment)。请参阅MSDN上的Group Elements in a Sequence

所以在你的结果,你只需要返回Key作为注释,然后在分组中的Count(),因为你已经尝试过:

var query = (from c in DOCCCOIssues//.IssuesModels 
      group c by c.Comment into g 
      select new 
      { 
       Comment = g.Key, 
       Count = g.Count() 
      }); 

Working .NetFiddle

+0

不错的工作谢谢 –

2

你接近 - >使用 “钥匙”

var query = (from c in DOCCCOIssues 
      group c by c.Comment into g 
      select new 
      { 
       Comment = g.Key, 
       Count = g.Count() 
      }); 

query.Dump(); 

(linqpad新手必看)

哦,我看到Rhumborl已经拥有了正确的答案

UPDATE

Rhumborl仍然有正确的答案,但我觉得有义务作出更多的贡献为我的回答是那么像Rhumborl。

因此,根据你的模型,我不知道任何其他属性,但与评论和计数,我想你会想吐出一个列表,所以我写了这个了你...

List<IssuesModel> issueModel = new List<IssuesModel>(); 


foreach (var s in query) 
{ 
    IssuesModel issue = new IssuesModel(); 
    issue.Comment = s.Comment; 
    issue.Count = s.Count; 
    issueModel.Add(issue);  
} 


issueModel.Dump(); 
+0

很好,thx因为这对我也有帮助 –