2016-02-10 100 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因爲這對我也有幫助 –