Inquiridor
Validação com try catch

Pergunta
-
Boa tarde pessoal,
estou validando conforme abaixo, o erro é apresentado em tela, porem as relações não são carregadas (metodo DeleteConfirmed). No metodo Delete funciona.
public ActionResult Delete(int id) { TipoAtividade tipoatividade = db.TipoAtividade.Include("TipoConhecimento").Single(t => t.TipoAtvID == id); return View(tipoatividade); }
[HttpPost, ActionName("Delete")] public ActionResult DeleteConfirmed(int id) { TipoAtividade tipoatividade = db.TipoAtividade.Include(a => a.TipoConhecimento).Single(t => t.TipoAtvID == id); try { db.TipoAtividade.DeleteObject(tipoatividade); db.SaveChanges(); return RedirectToAction("Index"); } catch (DataException) { //Log the error (add a variable name after DataException) ModelState.AddModelError("", "Exclusão não permitida. Tipo Atividade possui relacionamento(s)."); } return View(tipoatividade); }No metodo normal funciona, no metodo HttpPost a relação não é carregada, alguem sabe porque isso ocorre? TipoAtividade.TipoConhecimento fica null.
Abraços!
Todas as Respostas
-
Você está colocando no Include(a => a.TipoConhecimento), deveria colocar Include("TipoConhecimento")
TipoAtividade tipoatividade = db.TipoAtividade.Include(a => a.TipoConhecimento).Single(t => t.TipoAtvID == id);
Elvis Rodrigues Analista Desenvolvedor .Net Perfil Profissional MCTS .Net Framework 2.0, MCTS SQL Server 2005 foxelv@hotmail.com -
-
e como está no OnModelCreating do DbContext???
eh 1 para N?
se for vc pode fazer assim
modelBuilder.Entity<TipoConhecimento>().HasRequired(p => p.TipoAtividade).WithMany(p => p.TiposDeConhecimento);
isso levando em conta que 1 TipoAtividade tem N TipoConhecimento e q no TipoAtividade tem uma ICollection<TipoConhecimento> TiposDeConhecimento
-
-