Estou tentando fazer uns CRUD's para praticar e ao tentar realizar edit de uma linha da tabela apresenta seguinte erro:
An exception of type 'System.Data.Entity.Infrastructure.DbUpdateConcurrencyException' occurred in EntityFramework.dll but was not handled in user code
Additional information: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.
Segue a classe que geral a tabela e codigo do controler e DAO:
public class Relogio { public int Id { get; set; } public string Empresa { get; set; } public string Modelo { get; set; } public string Pulseira { get; set; } public string Loja { get; set; } public Cidade Cidade { get; set; } public string Pais { get; set; } public decimal ValorReal { get; set; } public decimal ValorDollar { get; set; } public DateTime? DataCompra { get; set; } public string Observacao { get; set; } }
DAO:
public class RelogioDAO { private EntidadesContext context;
public RelogioDAO(EntidadesContext context) { this.context = context; }
public void Adiciona(Relogio relogio) { this.context.Relogios.Add(relogio); this.context.SaveChanges(); }
public void Remove(Relogio relogio) { if(relogio != null) { this.context.Relogios.Remove(relogio); this.context.SaveChanges(); } }
public void Atualiza(Relogio relogio) { if (relogio != null) { this.context.Entry(relogio).State = System.Data.Entity.EntityState.Modified; this.context.SaveChanges(); } }
public IList Lista() { return this.context.Relogios.ToList(); }
public Relogio BuscaPorId(int id) { return this.context.Relogios.Find(id); }
}
CONTROLLER:
public ActionResult InventarioCadastroRelogio() { return View(); }
public ActionResult AdicionaRelogio (Relogio relogio) { if (ModelState.IsValid) { relogioDAO.Adiciona(relogio); return RedirectToAction("InventarioCadastroRelogio"); } else { return View("InventarioCadastroRelogio", relogio); } }
public ActionResult RemoveRelogio (int id) { Relogio relogioRemovido = relogioDAO.BuscaPorId(id); relogioDAO.Remove(relogioRemovido); return RedirectToAction("InventarioConsultaRelogio"); }
public ActionResult MostraRelogio (int id) { Relogio relogioExibido = relogioDAO.BuscaPorId(id); return View(relogioExibido); }
public ActionResult AtualizaRelogio(Relogio relogio) { relogioDAO.Atualiza(relogio); return RedirectToAction("InventarioConsultaRelogio"); }