0
我试图做我的尽职调查,并阅读了很多这里的问题,我无法解决我的问题。我有一个非常简单的模式。我期待了一个get方法的记录(用适当的WHERE子句,让我感兴趣的记录):为什么我不能用dbContext更新记录?
public IQueryable<TDataModel> Get<TDataModel>() where TDataModel : class, IDataModel
{
return _context.Set<TDataModel>();
}
然后我修改无论该对象我感兴趣的,然后我通过了修改后的性能反对的更新方法:
public TDataModel Update<TDataModel>(TDataModel item) where TDataModel : class, IDataModel
{
_context.Set<TDataModel>().Attach(item);
_context.Entry<TDataModel>(item).State = EntityState.Modified;
_context.SaveChanges();
return item;
}
我总是拥有得天独厚的以下内容:
与对象相同的密钥已经存在于ObjectStateManager。 ObjectStateManager无法使用相同的 键追踪多个对象。
我已经尝试了许多解决方案中提出的很多这里提出的问题无济于事。
何时发生错误?在'.Attach(item)'或'.SaveChanges'上? – 2012-02-11 15:34:22
在.Attach(item) – TheHurt 2012-02-11 15:43:17
我知道你可能已经通过了这个,但是你在查询和'.Attach(item)'之间的相同数据上下文吗? – 2012-02-11 15:44:50