2011-09-01 113 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