C# MVC实体异常,真的很奇怪

C# MVC实体异常,真的很奇怪,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在数据库中保存一些地点/城市 我的位置/城市确实会通过我的this保存。\u entities.SaveChanges;抛出一个类似以下内容的执行选项: 已成功提交对数据库的更改,但更新对象上下文时出错。ObjectContext可能处于不一致的状态。内部异常消息:AcceptChanges无法继续,因为对象的键值与ObjectStateManager中的另一个对象冲突。在调用AcceptChanges之前,请确保键值是唯一的 我真的不知道是什么问题,因为它以前工作,这种变化不应该影响它真的

我正在数据库中保存一些地点/城市

我的位置/城市确实会通过我的this保存。\u entities.SaveChanges;抛出一个类似以下内容的执行选项:

已成功提交对数据库的更改,但更新对象上下文时出错。ObjectContext可能处于不一致的状态。内部异常消息:AcceptChanges无法继续,因为对象的键值与ObjectStateManager中的另一个对象冲突。在调用AcceptChanges之前,请确保键值是唯一的

我真的不知道是什么问题,因为它以前工作,这种变化不应该影响它真的

下面是一些代码: 首先,我将所有对象放入当前位置。 我通过foreach将它们循环以将项添加到add方法。 最后我调用了_entites.SaveChanges。所有内容都保存了,但我收到一个错误

           var webService = new WeatherWebService();
            currentLocation = webService.FindLocation(city);

            // ...save the user in the database.
            foreach (var item in currentLocation)
            {
                this._repository.Add(item);
            }

            this._repository.Save();

    public override void Add(Location location)
    {
        this._entities.Locations.AddObject(location);
    }

    public override void Save()
    {
        this._entities.SaveChanges();
    }

问题解决了,似乎您必须从自动增量输出一个id。。。否则它将使每个帖子id为0,因此它认为它的几个帖子id相同


使用类似于NewId的内容作为@@SCOPE_IDENTIY

如果结果只保存一个城市,那么它会保存多个城市,并在上面抛出异常。。。!?在调用AcceptChanges之前,即在SaveChanges之前,请确保键值是唯一的。您检查了吗?