2011-09-01 94 views
1

我有一个特定的SQL查询:转换SQL到LINQ

SELECT TOP 20 * FROM tblIm WHERE Id NOT IN (SELECT TOP 20 Id FROM tblIm) 

我只是尝试这样做:

var results = from myRow in Ds.AsEnumerable().Take(minRecords) 
       where myRow.Field<int>("Trail_Id") > 1 
       && myRow.Field<int>("Id") <= 20 
select myRow; 

,但它不工作,因为我想要的。那么如何将它转换为像SQL语句那样工作的LINQ语句呢?

有什么建议吗?

谢谢大家,但我得到了解决 最后:

var testresult = from c in Ds.AsEnumerable().Take(20) 
         where !(from o in Ds.AsEnumerable().Take(intSkip)  
         select o)  
         .Contains(c)  
         select c; 
+0

我只想把它放在一个存储过程,并调用存储过程要诚实: ) –

+0

我想'tblIm.Id'是你的表的聚集索引,但是你应该在'SELECT'语句中包含'ORDER BY tblIm.Id'。 – arcain

回答

5

我认为这会是这样的

tblIm.Skip(20).Take(20) 
+1

这是我得到了解决。最后 VAR的TestResult =从以(20) 在Ds.AsEnumerable()C。在哪里!(邻在Ds.AsEnumerable()。以(intSkip) 选择o) 。载(c) select c; – Jones