2012-11-16 58 views
2

我有EF的問題。所以,我在我的mysql表中有1000000條記錄。我需要限制查詢。例如,我做跳過查詢50000實體框架有時不返回結果到列表

var listRoutes = (from c in context.Routes 
          where c.Alias != "" 
          orderby c.Alias ascending 
          select c).Skip(50000).Take(500).ToList(); 

和listRoutes有500條記錄。如果我做查詢與跳過100000

var listRoutes = (from c in context.Routes 
           where c.Alias != "" 
           orderby c.Alias ascending 
           select c).Skip(100000).Take(500).ToList(); 

List<Route> listRoutes = context.Routes.Where(x => x.Alias != "").OrderBy(a => a.Alias).Skip(100000).Take(500).ToList(); 

listRoutes有0的記錄。但是,如果我做查詢跳過100000或更多

List<Route> listRoutes = context.Database.SqlQuery<Route>("SELECT * FROM testcmsdatamap.routes WHERE alias != '' order by alias asc limit 500000, 500").ToList(); 

listRoutes也有500 ...什麼問題?

+0

你的問題是什麼? –

+1

不要從數據庫中查詢太多記錄,10k就夠了,你可以循環獲取你需要的所有記錄。不要立刻全部收到 –

+0

我沒有得到所有記錄,例如我需要跳過100K並記錄500條記錄。但EF返回0記錄列表。但是,如果我用SqlQuery做到這一點,所有工作正常。爲什麼這不適用於Linq和EF? –

回答

相關問題