C# 将SQL语句转换为LINQ VS2010
如果您能帮助我将以下sql语句转换为linq,我将不胜感激:C# 将SQL语句转换为LINQ VS2010,c#,sql-server-2008,visual-studio-2010,linqer,C#,Sql Server 2008,Visual Studio 2010,Linqer,如果您能帮助我将以下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.
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.
提前感谢。我认为除了使用
跳过…获取
之外,LINQ中没有任何与行号()对应的功能:
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);
谢谢,我发现这个错误:找不到“加入”。当前上下文中不存在名称“vw_MasterView”(vw_MasterView)(我希望您已经有一个集合(对象/数据上下文中的集合或对象集合)与SQL视图相匹配vw_MasterView
)。该工具将如何为您创建此对象?我使用Linqer进行测试,它与数据上下文相连。可能您需要在两个集合(Visit
和vw\u MaterView
)前面加上上下文变量名。类似于dc.Visit
和dc.vw_MasterView
。对不起,我没有Linqer要测试。您没有提到您使用的是哪种ORM,但是如果您使用的是实体框架,您可以继续使用SQL with ExecuteStoreQuery-