我有一个 ASP.NET MVC 4 应用程序,我正在使用 EF。我有一个表和一个 SQL 视图(视图显示该表中的行加上一些不重要的数据(~ 1000 条记录)),有 ~ 400.000 条记录。当我在 EF 中显示数据时,需要 25 秒
MVCAppEntities db = new MVCAppEntities();
public ActionResult Index()
{
return View(db.vvItem.OrderBy(n => n.Code).Skip(20).Take(40).ToList());
}
在 SQL Server Management Studio 中,此查询需要 0-1 秒
select code, quantity, name, price
from (
select *,
row_number() over(order by code) as rn
from vvItem
) as T
where T.rn between 20 and 40
问:为什么 EF 查询这么慢?我应该做一个 SP 来做 Skip and Take 吗?