1

我想在我的列表中添加一个新列“Id”,我正在使用 Linq 和实体框架从数据库中检索数据,我有 12 行,我需要添加一个新列“Id”,它应该从 1 开始到 12根据我从数据库中获取的行数,id 应该从 1 开始递增

这是我的查询

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<>

在第三步中,从我的角度来看,我将我的 webgrid 的源属性提供给我的模型中保存数据的列表

4

2 回答 2

0

如果您想对结果进行分页和索引。尝试这个:

var Details = db.Details.Skip(page*pageSize)
                        .Take(pageSize)
                        .ToList()
                        .Select((p,i)=> new {Id = i,Detail = p});
于 2013-04-29T11:19:19.317 回答
0

我建议你使用SkipTake

public List<Details> GetDetails(int page, DbContext db)
{
   const int pageSize = 5;
   db.Details.Skip( (page*pageSize) ).Take(pageSize).ToList();
}

这将消除对“索引”列的需要。这是一件好事,因为您不能将列/属性添加到类型,并且仍然具有相同的类型。

例如,如果您想返回 aList<Details>您必须将属性添加Id到 type Details

对于一些文档

于 2013-04-29T11:12:51.017 回答