将SQL语句转换为LINQ VS2010

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将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.

提前致谢。

答案

除了使用row_number() over之外,我认为LINQ中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);

以上是关于将SQL语句转换为LINQ VS2010的主要内容,如果未能解决你的问题,请参考以下文章

将 SQL 语句转换为 DataTable 上的 LINQ 查询

C# 将带有 Case 语句的 SQL 查询转换为 LINQ

如何将以下 SQL 语句转换为 LINQ 方法语法

帮助将 SQL 语句转换为 LINQ Lambda(在 group by 和 sum 方面需要帮助)

将包含 where、group by、sum 和必须的 MySQL 语句转换为 Linq to Sql

用于 VS 2010 的 LINQ to SQL 可视化工具?