2017-07-21 6 views
3

タグクラスはどうすればLinqでグループ化できますか?

public class Tags 
    { 
     public int TagId; 
     public string Tag; 
     public string TagLink; 
     public int TagCount; 
    } 

で、私のクエリは、上記のアプローチの問題は、私はまたTagIdTagLinkをマッピングすることができないということです

var v = db.QuestionTags 
      .GroupBy(n => n.Tag.Tag1) 
      .Select(n => new Tags 
      { 
       Tag = n.Key, 
       TagCount = n.Count() 
      } 
      ) 
      .OrderByDescending(n => n.TagCount); 

です。どうすれば修正できますか?

+0

なぜこれらのプロパティでもグループ化しませんか? –

答えて

5

TagのためにあなたがユニークTagIdTagLinkを取得し、あなたがそれらを設定するためにFirst()を使用することができますと仮定すると:これらのプロパティは同じTagのために異なる場合があります場合は

var v = db.QuestionTags 
    .GroupBy(n => n.Tag.Tag1) 
    .Select(n => new Tags { 
     Tag = n.Key, 
     TagCount = n.Count(), 
     TagId = n.First().TagId, 
     TagLink = n.First().TagLink 
    }) 
    .OrderByDescending(n => n.TagCount); 

を、その組み合わせによってグループ:

var v = db.QuestionTags 
    .GroupBy(n => new {n.Tag.Tag1, n.TagId, n.TagLink}) 
    .Select(n => new Tags { 
     Tag = n.Key.Tag1, 
     TagCount = n.Count(), 
     TagId = n.Key.TagId, 
     TagLink = n.Key.TagLink 
    }) 
    .OrderByDescending(n => n.TagCount); 
関連する問題