在asp.net mvc里学着写gridview ,在控制器的Index方法里有下面的代码
var model1 = (from c in db.tbUser select c).ToPagedList(page, 5,"User_ID", sort)【1】
return View(model1);
【1】的ToPagedList是扩展方法 调用后返回 return new PagedList<T>(pageOfItems, truePageIndex, pageSize, totalItemCount,identityColumnName, sort);【2】
而 PagedList<T>
如下图
【1】 我改成
var model2 = (from c in db.tbUserselect c).OrderBy(sort).ToPagedList(page, 5, "User_ID");
就对了 为什么要排序?
数据库里面的数据是无序的,你select top n * 时 你多查询几次,会发现数据的顺序会变的 (除非你指定排序规则 order by)
假如你现在查询的数据集的第2条, 下面你跳了3条,查询第5条,按照上面说的无序性,这两次查询的数据有可能一样 所以要用order by将数据集人为的排序下
不会啊 我在数据库里直接select top n * 时 都不会变 默认好像就是升序的
@koi: 这个你可以去搜搜相关的知识 理论是这样的
http://msdn.microsoft.com/zh-cn/library/bb738680%28v=VS.90%29.aspx
这是EF的 skip用法 和LINQ 差异不大的