C# MVC实体异常,真的很奇怪
我正在数据库中保存一些地点/城市 我的位置/城市确实会通过我的this保存。\u entities.SaveChanges;抛出一个类似以下内容的执行选项: 已成功提交对数据库的更改,但更新对象上下文时出错。ObjectContext可能处于不一致的状态。内部异常消息:AcceptChanges无法继续,因为对象的键值与ObjectStateManager中的另一个对象冲突。在调用AcceptChanges之前,请确保键值是唯一的 我真的不知道是什么问题,因为它以前工作,这种变化不应该影响它真的 下面是一些代码: 首先,我将所有对象放入当前位置。 我通过foreach将它们循环以将项添加到add方法。 最后我调用了_entites.SaveChanges。所有内容都保存了,但我收到一个错误C# MVC实体异常,真的很奇怪,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在数据库中保存一些地点/城市 我的位置/城市确实会通过我的this保存。\u entities.SaveChanges;抛出一个类似以下内容的执行选项: 已成功提交对数据库的更改,但更新对象上下文时出错。ObjectContext可能处于不一致的状态。内部异常消息:AcceptChanges无法继续,因为对象的键值与ObjectStateManager中的另一个对象冲突。在调用AcceptChanges之前,请确保键值是唯一的 我真的不知道是什么问题,因为它以前工作,这种变化不应该影响它真的
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之前,请确保键值是唯一的。您检查了吗?