「ObjectStateManager中已存在具有相同密鑰的對象...」異常引發我遵循一些示例(包括諸如「Pro ASP.NET MVC 3」和「Professional ASP .NET MVC 3「)使用EF 4.1創建簡單的ASP.NET MVC 3應用程序(因爲我是這些技術的新手)。設置實體狀態爲已修改
我使用以下信息庫(它單個實例由控制器使用的所有操作方法)來訪問DB:
public class ProductRepository : IProductRepository
{
private readonly EFDbContext _context = new EFDbContext();
#region Implementation of IProductRepository
....
public void SaveProduct(Product product)
{
if (product.ProductId == 0)
{
_context.Products.Add(product);
}
else
{
_context.Entry(product).State = EntityState.Modified;
}
_context.SaveChanges();
}
....
}
此存儲庫執行更新,因爲它是在實施例中所示我用了。
產品類:
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public string Category { get; set; }
}
在更新產品的情況下,我得到異常「具有相同鍵的對象已經存在於ObjectStateManager的ObjectStateManager不能用相同的跟蹤多個目標。關鍵」
我知道類似的問題已經被這裏討論,但我的問題是有點不同:
爲什麼這段代碼這是從拍攝爲例es不工作(雖然它看起來非常簡單和直接)?我可能做了什麼或錯過了什麼。
我使用的Visual Studio會爲您設置默認腳手架具有同樣的錯誤,我一直沒能弄明白。 –