【发布时间】:2015-07-13 05:59:29
【问题描述】:
当我使用时:
var result = db.votes.ToPagedList(pageNumber, pageSize);
result get [pageSize] rows from database with good performance 不发送到数据库“select * from table”
但是当我使用时:
var q2 = SELECT * FROM [dbname].[dbo].[v1] ";
var result = db.Database.SqlQuery<ISMS>(q2).ToPagedList(pageNumber, pageSize);
result 从内存中的数据库中捕获所有行,然后将其转换为 pagedlist 和 它非常慢,因为(向数据库发送查询是'select * from table')
我使用 sqlServer profiler 监控所有内容。
但是,出于多种原因,我想使用 db.Database.SqlQuery 并获得良好的性能,我该怎么办?
我的测试:
1.var result = db.Database.SqlQuery<ISMS>(q2).AsQueryable().ToPagedList(pageNumber, pageSize);
它还将“select * from table”发送到数据库
2.
var q = string.Format("SELECT * FROM [dbname].[dbo].[{0}] " +
"ORDER BY id " +
"OFFSET {1} ROWS " +
"FETCH NEXT {2} ROWS ONLY ", tablename , 20 * (page - 1), 20);
但是当我在上面使用时,我不能在视图中使用@Html.PagedListPager
【问题讨论】:
标签: sql-server asp.net-mvc entity-framework pagedlist