2013-07-31 3 views
0

Как я могу перевести этот SQL-запрос в выражение LINQ?SQL-запрос к выражению LINQ

select NoteDate, SUM(DurationInHours) from Note 
where IDUser = '2933FB9C-CC61-46DA-916D-57B0D5EF4803' and 
     NoteDate > '2013-07-01' 
group by NoteDate 

Я пробовал, но это не сработало

var lastMonth = DateTime.Today.AddMonths(-1); 
var userNotes = GetNotesByUser(idUser); 
var b = from note in userNotes 
     group note by new {note.IDUser, note.NoteDate, note.DurationInHours} into g 
     where g.Key.NoteDate > lastMonth 
     select new {g.Key.NoteDate, TotalHours = g.Sum(a => a.DurationInHours)} 
+1

Что вы пробовали? – algreat

+0

Это отличное место для изучения запросов LINQ. http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b –

+0

var lastMonth = DateTime.Today.AddMonths (-1); var userNotes = GetNotesByUser (idUser); вар б = от ноты в UserNotes группы записка новых {note.IDUser, note.NoteDate, note.DurationInHours} в г где g.Key.NoteDate> lastMonth выбрать новый {g.Key.NoteDate, TotalHours = g.Sum (a => a.DurationInHours)} Я пробовал, но не работает. Я видел эти примеры @CamBruce, но у меня есть настоятельная необходимость. Я изучаю это с большим количеством времени! Благодарю. – gog

ответ

3
var id = new Guid("2933FB9C-CC61-46DA-916D-57B0D5EF4803"); 
var date = new DateTime(2013, 7, 1); 

var query = from n in db.Notes 
      where n.IDUser == id && n.NoteDate > date 
      group n by n.NoteDate into g 
      select new { 
       NoteDate = g.Key, 
       Sum = g.Sum(x => x.DurationInHours) 
      }; 
Смежные вопросы