Конвертировать оператор 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);