2013-02-12 3 views
0

Я хочу получить отличное значение имени модуля из таблицы оценки. ModuleName - это столбец поиска в списке оценки. ModuleName связано с ModuleList. Скажите, пожалуйста, как мне получить отчетный список имени модуля из списка оценки?Запрос LinQ для неподдерживаемых запросов LinQ и двухэтапных запросов

protected void drpCoursesName_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    using (SiteEntitiesDataContext siteEntitiesDataContext = new SiteEntitiesDataContext(SPContext.Current.Site.Url)) 
    { 
     EntityList<AssessmentItem> listItems = siteEntitiesDataContext.GetList<AssessmentItem>("Assessment"); 
     var distinctModuleCount = from module1 in listItems 
            group module1 by new { module1.ModuleName } 
            into grp 
            select new 
            { 
             count1=grp.Count(), 
            }; 
     int modulecount=distinctModuleCount.Count(); 

     foreach(var item in distinctModuleCount) 
     { 
      Label lbl1 = new Label(); 
      lbl1.Text = modulecount.ToString(); 
      PlaceHolderAssessment.Controls.Add(lbl1); 
     }//end of for loop 
    }//end of Data Context 
}//end of method 

Заранее спасибо.

ответ

0

Было немного сложно интерпретировать то, что вам нужно, но я надеюсь, что следующее поможет.

Учитывая класс определяется как:

public class AssessmentItem 
{ 
    public string ModuleName { get; set; } 
} 

и следующий код, который инициализирует и запрашивает набор этих классов:

var items = new List<AssessmentItem> 
    { 
     new AssessmentItem { ModuleName = "Test 1" }, 
     new AssessmentItem { ModuleName = "Test 1" }, 
     new AssessmentItem { ModuleName = "Test 2" }, 
     new AssessmentItem { ModuleName = "Test 2" }, 
     new AssessmentItem { ModuleName = "Test 2" } 
    }; 

var grouped = items.GroupBy(x => x.ModuleName); 
Debug.WriteLine("Distinct modules {0}", grouped.Count()); 
foreach (var group in grouped) 
{ 
    Debug.WriteLine("{0} has {1} entries", group.Key, group.Count()); 
} 

Вы получите следующий результат:

Distinct modules 2 
Test 1 has 2 entries 
Test 2 has 3 entries 
Смежные вопросы