2012-05-18 83 views
0

我将不胜感激帮助下面的SQL语句转换为LINQ:转换SQL语句中的LINQ VS2010

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. 

提前致谢。

+0

你不提这ORM你使用,但如果你使用实体框架你可以继续使用SQL与ExecuteStoreQuery - http://msdn.microsoft.com/en-us/library/dd487208.aspx –

+0

谢谢詹姆斯,这将做。 – hncl

回答

0

我不认为存在任何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); 
+0

谢谢,我得到这个错误:'加入'找不到。 名称'vw_MasterView'在当前上下文中不存在 – hncl

+0

我期望您已经拥有一个与SQL视图'vw_MasterView'相匹配的集合(一个集合或一个在对象/数据上下文中设置的对象)。该工具将如何为您创建此对象? –

+0

我使用Linqer进行测试,它被连接到数据上下文。 – hncl