none
Validação com try catch RRS feed

  • 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!




    terça-feira, 26 de julho de 2011 19:14

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
    terça-feira, 26 de julho de 2011 20:12
  • Sim sim..

    mesmo com .Include("TipoConhecimento") não funciona. Só estava testando de outra forma..

    terça-feira, 26 de julho de 2011 20:18
  • 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

    quarta-feira, 27 de julho de 2011 00:45
  • Eu uso .EDMX, não tenho OnModelCreating.

    A relação seria TipoAtividade N-1 TipoConhecimento.

    Vlw


    quarta-feira, 27 de julho de 2011 11:50
  • Alguma ideia?
    quinta-feira, 28 de julho de 2011 20:08