Конвертировать оператор SQL в LINQ VS2010

Буду признателен за помощь в преобразовании следующего оператора sql в linq:

select *
from (
    select 
        *,
        rn = row_number() over (partition by ClientId order by VisitId)
    from
        Visit
) activityWithRn
inner join vw_MasterView on  vw_MasterView.VisitId = activityWithRn.VisitId
where activityWithRn.rn =3

Когда я использую Linqer (замечательная программа), я получаю следующую ошибку:

SQL cannot be converted to LINQ: Field [rn = row_number() over (partition by ClientId order by VisitId)] not found in the current Data Context.

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

1 ответ

Я не думаю, что есть какая-то соответствующая функция в LINQ для row_number() overкроме использования Skip...Take:

var q = (from v in Visit
            join mv in vw_MasterView on v.VisitId equals mv.VisitId 
            orderby v.VisitId
            select v).Skip(2).Take(1);
Другие вопросы по тегам