我有一个Id
列的表格,其设置为Identity
。现在,当我在循环中插入记录时,即
foreach (int i in array)
{
using (var entities = new myEntities())
{
TableA obj = new TableA();
obj.Name = "MyName";
obj.Address = "MyAddress";
entities.TableA.Add(obj);
isAdded = entities.SaveChanges() > 0;
if (isAdded)
{
int id = obj.Id;
obj.IdInString = id.ToString();
entities.SaveChanges();
}
}
}
现在,对于第一次迭代,它带来了正确的Id。但是对于第二次迭代,它仍然会返回插入的第一行的id。我可以在数据库中看到插入第二行并且ID也递增。
发生了什么事?我在这做错了什么? 编辑: 一段时间后我回到这个问题,发现这与循环没有关系。即使我下次来到页面,它也会返回旧ID。它似乎正在缓存。我已经在“使用”块中使用了实体,这意味着它正在被破坏。 请注意,这用于ASP.Net Web应用程序 感谢..