我想在我的列表中添加一个新列'Id',我正在使用Linq和实体框架从数据库中检索数据,我有12行,我需要添加一个新列“Id”,它应该从基于我从数据库获得的行数,1到12应该从1开始增加id
这是我的查询
var Details = db.Details.Include(p => p.Name).Include(p => p.Gender);
问题在于,我还在为我的网格实现分页,当我再次点击下一页时,行号是从sno 1生成的,当我的第1页包含第1行到第5行的记录时,我的第2行行号应该从第6行开始,但我的第2行行号再次从第1行开始。
我发布了获取数据并将数据绑定到网格的流程
在第一步中我有我的模型User.cs,它与数据库交互并获取数据并将数据存储在List<>
在下一步中,从我的控制器操作方法中调用我的模型User.cs中的方法,该方法将从数据库中获取数据并将其存储在List<>
在第3步中,从我的视图中我将webgrid的source属性赋予我的模型中包含数据的列表
答案 0 :(得分:0)
我建议您使用Skip
和Take
public List<Details> GetDetails(int page, DbContext db)
{
const int pageSize = 5;
db.Details.Skip( (page*pageSize) ).Take(pageSize).ToList();
}
这将消除对“索引”列的需要。这是一件好事,因为您无法向类型添加列/属性,并且仍然具有相同的类型。
e.g。如果您想要返回List<Details>
,则必须将属性Id
添加到Details
类型。
对于某些文档
答案 1 :(得分:0)
如果您要同时进行分页和索引结果。试试这个:
var Details = db.Details.Skip(page*pageSize)
.Take(pageSize)
.ToList()
.Select((p,i)=> new {Id = i,Detail = p});