你在说什么.完全都不对.
什么是直接建立ADO实体对象模型
第一步: 右键-新建项-数据-ADO.net实体对象模型
第二步: 控制器中写: var db = new DataContext()
return View(db.Articles.OrderByDescending(a =>a.PubDate).ToPagedList(id, 5)
这种思想,是假分页,一下子把数据全部查出来,然后去返回数据
我说明白了没有?
@郎中令: 嗯.意思就是
1.使用ef modelfirst/dbfirst模式开发的项目很少
2.db.Articles.OrderByDescending(a =>a.PubDate).ToPagedList(id, 5)是假分页?
解释
1.确实不多.但还是有的
2.是真分页.因为他是延迟加载.他会在ToPagedList的时候生成一个包括OrderByDescending的sql语句执行.这个教ef的课程应该都有教吧.
@吴瑞祥: 謝謝你的耐心回答,主要是现在数据量非常大,EF的话不适用,当前是在后台用 sql 的分页查询查询出来,然后卡在前台 最下面(首页,上一页,下一页,尾页,跳转上面),网上的Demo大多数都是EF,所以不明白怎么写,用EASYUI可以显示,但是感觉效果不理想,不知道有没有合适的Bootstrap
@郎中令: ...你说的乱七八糟的.
ef和你直接写sql没有区别.只能说你的用法不对.因为他最后也是生成一个sql到数据库去执行.
意思就是你现在的问题是:分页插件?
@吴瑞祥: 是的亲,后台是这样写的
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;
}
前台写最下面的插件没有找到合适的
这是明显的简单的问题复杂化。
一个简单的方法你sql啥子都省了——odata。
你说的在理,我想的就是 sql的rownumber将数据查询出来,然后映射成List对象,然后返回前台视图页,进行显示 加载