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があります...何が問題なのですか?

4

1 に答える 1

0

問題は解決しました。ビッグデータのタイムアウトに問題がありました。EFは間違ったSQLを構築します。INDEX用に単純なSQLクエリが作成されました。だから、私はMysqlインデックスを持つ他の問題エンティティフレームワークを持っています

于 2012-11-16T10:08:39.930 に答える