Облако тегов C # LINQ - PullRequest
       7

Облако тегов C # LINQ

1 голос
/ 24 января 2011

Я пытаюсь создать облако тегов в C # с помощью LINQ. Я никогда раньше не использовал LINQ, поэтому получаю несколько синтаксических ошибок. Может ли кто-нибудь помочь мне исправить мой код? Заранее спасибо за помощь!

private void BindTagCloud()
{



var tagSummary = from af in db.AgileFactors
               join psf in db.ProjectStoryFactors
               join s in db.Stories
               join pim in db.ProjectIterationMembers
               join i db.Iteration
               join p db.Project
               where p.ProjectID == proj_id 
                     p.ProjectID == i.ProjectID and
                     i.ProjectIterationID == pim.ProjectIterationID and
                     pim.ProjectIterationMemberID == s.ProjectIterationMemberID and
                     s.StoryID == psf.StoryID and
                     psf.AgileFactorID == af.AgileFactorID
                     group af by af.Name into tagGroup

                     select new
                     {

                        ID = af.AgileFactorID,
                        Total = psf.Count() 

                     };


 var tagCloud = from psf in tagSummary
             where psf.AgileFactorID == tagSummary.ID
 select new
 {

 Name = psf.Name,
 ID = psf.AgileFactionID,
 Count = psf.Count(),

 weight = Count / tagSummary.Total * 100

};


ListView1.DataSource = tagCloud; 
ListView1.DataBind();

}

Ответы [ 2 ]

5 голосов
/ 24 января 2011

LINQ! = TSQL; каждый and должен быть C #, &&; каждая join должна указывать левую и правую части (с equals) сразу , т.е.

join newAlias in newSet on existingAlias.Key equals newALias.Key

Если вы хотите написать TSQL, это нормально - просто используйте .ExecuteQuery<T>(tsql, args)

0 голосов
/ 24 января 2011

Спасибо Марк, я избавился от большинства ошибок, исправив соединения. Осталось 4 ошибки:

select new {

 ID = af.AgileFactorID,
 Total = psf.Count()

};

1) имя af не существует в текущем контексте, 2) имя psf не существует в текущем контексте

var tagCloud = from psf in tagSummary where psf.AgileFactorID == tagSummary.ID

1) Ошибка 62 «AnonymousType # 1» не содержит определения для «AgileFactorID», и метод расширения «AgileFactorID», принимающий первый аргумент типа «AnonymousType # 1», не найден (отсутствует директива using ссылка на сборку?)

2) Ошибка 63 «System.Collections.Generic.IEnumerable» не содержит определения «ID», и не найдено метода «ID» расширения, принимающего первый аргумент типа «System.Collections.Generic.IEnumerable» (вам не хватает директивы using или ссылки на сборку?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...