2013-06-18 58 views
0

我創建了最複雜的LINQ查詢,但仍然沒有完全符合我的需求。從這個查詢中,我需要知道EventStudents表中有多少個相關學生有DateDeleted == null。所以,StudentCount = ev.EventStudents - 其中DateDeleted == null .Count()。 任何人都可以幫忙嗎?LInq實體選擇新的COUNT,其中

var inf = (from ev in db.Events 
     where (ev.StartDate >= beginDate && ev.StartDate <= endDate) 
     && ev.DeletedDate == null 
     orderby ev.StartDate descending 
     select new 
     { 
      EventID = ev.EventID, 
      EventTitle = ev.Title, 
      EventDate = ev.StartDate, 
      StudentCount = ev.EventStudents.Count(), 
      CreatedUsername = ev.CreatedUsername 
     }).AsEnumerable().Select(x => new 
     { 
      EventID = x.EventID, 
      EventTitle = x.EventTitle, 
      EventDate = x.EventDate, 
      StudentCount = x.StudentCount, 
      CreatedUsername = x.CreatedUsername, 
      CreatedFullname = sortedUserDictionary.Where(u => u.Value == x.CreatedUsername) 
      .Select(f => f.Key) 
      .FirstOrDefault() ?? x.CreatedUsername 
     }); 

回答

0

ev.EventStudents.Count()更改爲ev.EventStudents.Count(es => es.DateDeleted == null)