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