“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会为您设置默认脚手架具有同样的错误,我一直没能弄明白。 –