2012-11-16 53 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? –

回答

相关问题