我在使用EF尝试插入时遇到问题。情况如下:
MAX
函数的返回然后我从Visual Studio获取此消息:
已成功提交对数据库的更改,但更新对象上下文时发生错误。 ObjectContext可能处于不一致状态。内部异常消息:AcceptChanges无法继续,因为对象的键值与ObjectStateManager中的另一个对象冲突。在调用AcceptChanges
之前,请确保键值是唯一的
为了说明我的问题,我做了this small video。
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
最初检索实体时尝试使用AsNoTracking
:
using (var context = new MyContext())
{
var myEntities = context.MyEntities.AsNoTracking();
// then you can manually delete a row in the database
// and insert it again here in code
context.SaveChanges();
}
这样,ObjectContext
不会缓存实体。请注意,这将影响代码中依赖于跟踪机制的区域(如果有)。