public ActionResult Edit(int id, Persona persona) { try { if (!ModelState.IsValid) { return(View(persona)); } using (var db = new PersonaContext()) { Persona personaDB = db.Personas.Find(id); personaDB.Nombre = persona.Nombre; personaDB.Apellido = persona.Apellido; personaDB.NumeroDocumento = persona.NumeroDocumento; personaDB.FechaNacimiento = persona.FechaNacimiento; var numeroId = db.BuscarDireccion(persona.Direccion.calle, persona.Direccion.numero); if (numeroId != 0) { personaDB.DireccionId = numeroId; db.SaveChanges(); } else { Direccion nueva = new Direccion(); nueva.calle = persona.Direccion.calle; nueva.numero = persona.Direccion.numero; db.Direcciones.Add(nueva); personaDB.DireccionId = nueva.Id; db.SaveChanges(); } return(RedirectToAction("Index")); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View()); } }