使用linq传递表的每一行并更改数据?

时间:2016-01-25 03:34:57

标签: c# linq

所以我想查看一个行列表,将表中每个成员的所有ID更改为迭代次数

public class modelOne
{
    public ID;
    ... //more data added
}
public class oneDbContext : DbContext
{
    public DbContext() : base("DataBase")
    {

    }

    public DbSet<modelOne> Model{ get; set; }

}


oneDbContext db = new oneDbContext();
for(i=1; i <= db.Model.Count(); i++)
{
   db.Model.ID = i; //Do it for every row in the table
}
db.SaveChanges();

有可能吗?我怎样才能做到这一点?

更新

编辑所以我可以澄清一些事情

1 个答案:

答案 0 :(得分:1)

假设您的行少于1000行,您可以这样做。

var count = db.Model.Count();
for(int i = 0; i < count; i++)
{
    var model = db.Model.ElementAt(i);
    model.ID = i;
}
db.SaveChanges();

但如果你有超过1000行(这不是硬核限制)行,那么你必须确保每1000行左右调用db.SaveChanges