我有这个简单的代码:
foreach(var myvar in _sdb.Vars)
{
myvar.Area= AreaCheck(myvar);
_sdb.Entry(myvar).State = System.Data.Entity.EntityState.Modified;
_sdb.SaveChanges();
}
当我运行此代码时,我得到了这个例外:
不允许使用新事务,因为还有其他线程 在会议中运行。
我用Google搜索了问题,其中一个答案告诉我改变这一行:
foreach(var myvar in _sdb.Vars)
到这一行:
foreach(var myvar in _sdb.Vars.ToList())
但是当我这样做时,代码根本不起作用。我怎样才能做到这一点?感谢。
答案 0 :(得分:4)
在下面的迭代后保存
using (var _sdb = new MyContext())
{
foreach (var myvar in _sdb.Vars)
{
// Change myvar
}
//save at the end
_sdb.SaveChanges();
}