Insert和SaveChanges获得旧身份后

时间:2016-12-18 20:01:35

标签: c# asp.net sql-server entity-framework entity-framework-6

我有一个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应用程序 感谢..

0 个答案:

没有答案