首页新闻找找看学习计划

关于MVC分页

0
悬赏园豆:5 [已解决问题] 解决于 2017-03-27 16:49

刚接触分页,坊间说的假分页(一下子全部查出来,然后需要哪页返回哪页),真分页多用存储过程实现,那么 杨涛老师的MVC开源分页中,用的是 

var db = new DataContext()
return View(db.Articles.OrderByDescending(a => a.PubDate).ToPagedList(id, 5)

如果DataContext 是实体对象模型,那是不是说 这种思想就是坊间所谓的“假分页”,先把所有数据查询出来,然后
根据前台视图 传递的 索引页 和来返回对应的页码

郎中令的主页 郎中令 | 初学一级 | 园豆:23
提问于:2017-03-24 17:32
< >
分享
最佳答案
0

你在说什么.完全都不对.

什么是直接建立ADO实体对象模型

收获园豆:5
吴瑞祥 | 高人七级 |园豆:28729 | 2017-03-24 17:52

第一步: 右键-新建项-数据-ADO.net实体对象模型

第二步: 控制器中写: var db = new DataContext()

            return View(db.Articles.OrderByDescending(a =>a.PubDate).ToPagedList(id, 5)

这种思想,是假分页,一下子把数据全部查出来,然后去返回数据

我说明白了没有?

郎中令 | 园豆:23 (初学一级) | 2017-03-24 17:58

@郎中令: 嗯.意思就是

1.使用ef modelfirst/dbfirst模式开发的项目很少

2.db.Articles.OrderByDescending(a =>a.PubDate).ToPagedList(id, 5)是假分页?

解释

1.确实不多.但还是有的

2.是真分页.因为他是延迟加载.他会在ToPagedList的时候生成一个包括OrderByDescending的sql语句执行.这个教ef的课程应该都有教吧.

吴瑞祥 | 园豆:28729 (高人七级) | 2017-03-24 18:04

@吴瑞祥: 謝謝你的耐心回答,主要是现在数据量非常大,EF的话不适用,当前是在后台用 sql 的分页查询查询出来,然后卡在前台 最下面(首页,上一页,下一页,尾页,跳转上面),网上的Demo大多数都是EF,所以不明白怎么写,用EASYUI可以显示,但是感觉效果不理想,不知道有没有合适的Bootstrap

郎中令 | 园豆:23 (初学一级) | 2017-03-27 15:56

@郎中令: ...你说的乱七八糟的.

ef和你直接写sql没有区别.只能说你的用法不对.因为他最后也是生成一个sql到数据库去执行.

意思就是你现在的问题是:分页插件?

吴瑞祥 | 园豆:28729 (高人七级) | 2017-03-27 16:04

@吴瑞祥:  是的亲,后台是这样写的

public List<Book> GetDatable()
{
var pageindex = Convert.ToInt32(Request["page"]);
var pagesize = Convert.ToInt32(Request["rows"]);
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Ibc"].ToString());
SqlDataAdapter sda = new SqlDataAdapter(@"select * from (select *,ROW_NUMBER() OVER(ORDER BY BookID) number from Books) as b where b.number between " + (pageindex - 1) * pagesize + 1 + " and " + pageindex * pagesize + " ", con);
DataSet ds = new DataSet();
sda.Fill(ds);
List<Book> book = DataSetToList<Book>(ds.Tables[0]).ToList();
return book;
}

前台写最下面的插件没有找到合适的

郎中令 | 园豆:23 (初学一级) | 2017-03-27 16:21
其他回答(1)
0

这是明显的简单的问题复杂化。

一个简单的方法你sql啥子都省了——odata。

花飘水流兮 | 园豆:10527 (专家六级) | 2017-03-25 13:18

你说的在理,我想的就是 sql的rownumber将数据查询出来,然后映射成List对象,然后返回前台视图页,进行显示 加载

支持(0) 反对(0) 郎中令 | 园豆:23 (初学一级) | 2017-03-27 11:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册