public void Update(Product product)
{
if (repository.GetProductById(product.ID) != null)
{
repository.Update(product);
}
else
{
// Display errorrs
}
}
在庫
public void UpdateProduct(Product product)
{
_dbContext.Entry(product).State = EntityState.Modified;
_dbContext.SaveChanges();
}
public Product GetProductById(int id)
{
return _dbContext.Products.Find(id);
}
當我運行的網站,它表明這個錯誤
「具有相同鍵的對象已存在在ObjectStateManager中,ObjectStateManager不能使用相同的密鑰跟蹤多個對象。「
我知道發生了什麼事。當我調用GetProductByID()附加到DbContext的產品實體時。所以當我調用Update()時,它將複製Product實體。因爲在Update()中,我在DbContext中附加了存在的實體。
解決它。我只調用Update()。但是我想在更新/刪除它之前檢查產品的存在。
通過您的設計經驗,如何通過一個很好的方式來傳遞這個問題?