Эквивалентный запрос LINQ to SQL - PullRequest
0 голосов
/ 17 мая 2011

Может кто-нибудь помочь мне с эквивалентным запросом LINQ для SQL ниже?Я новичок в LINQ

Select * From Students_History SH
Where SH.Active = 1 and SH.ModifiedAt in (
select MAX(SH1.ModifiedAt)from Students_History SH1
group by SH1.StudentId)

Это то, что я пробовал

var q = 
    from h in Students_History
    where h.Active=1
    group h by h.StudentId into g
    select new 
    {
        StudentID = g.Key,
        LatestModified = g.Max (x => x.ModifiedAt)
    }

Этот запрос linq не дает мне правильный результат, и почему-то active = 1 игнорируется

В моей таблице Students_History содержится около десятка полей, и я хочу, чтобы все эти поля были не только studentId и ModifiedAt. * ​​1009 *

Ответы [ 2 ]

0 голосов
/ 17 мая 2011

Попробуйте это:

var q =
    from hg in Students_History
    group hg by hg.StudentId into g
    join h in Students_History on g.Key equals h.StudentId
    where h.Active == 1 && h.ModifiedAt == g.Max(x => x.ModifiedAt)
    select new
    {
        StudentID = h.StudentId,
        LatestModified = h.ModifiedAt
    }
0 голосов
/ 17 мая 2011

Для сравнения необходимо использовать оператор ==.

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