none
Como customizar o controlador Detail para consultar dados em duas ou mais tabelas RRS feed

  • Pergunta

  • Boa Tarde, realmente eu nao sei como resolver o problema e peço a ajuda de vcs...rsrsrs

    Criei uma aplicação utilizando o skafold do controlador e suas views, até ai tudo bem.

    A consulta é feita normalmente.

    Só que eu preciso que esta consulta contenha outras sub consultas.....por exemplo....

    Tenho a tabela principal que é a t_funcionario até ai beleza....só que preciso inserir na view details campos da tabela t_documento_funcionario , tendo em vista que seria um funcionario para varios documentos....um pra muitos

    Ja tentei com o Linq...até que cheguei perto...rsrsrs...só que ai eu perco todas as outras referencias como por exemplo os checkbox que ja tinham sido criados por padrão.

    Dai pensei e andei pesquisando sobre ViewModel....mas tambem nao tenho certeza se me resolveria o problema por ser um pra muitos...

    Alguem poderia me esclarecer esta duvida?

    Segue o trecho do controlador que eu estou tentando trabalhar com as duas tabelas.

    Tera varias linhas comentadas....são tentativas sem exito...rsrsrsr

    // GET: Paciente/Details/5
            public async Task<ActionResult> Details(int? id)
            {
                ViewBag.Message = "Detalhes do registro.";
                if (id == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                //T_Paciente t_Paciente = await db.T_Paciente.FindAsync(id);
                //T_Documento_x_Paciente T_Documento_x_Paciente_RG = await db.T_Documento_x_Paciente.Where(s => s.Cd_Paciente == id && s.Id_tipo_documento == 1);
                //var RG = db.T_Documento_x_Paciente.Where(s => s.Cd_Paciente == id && s.Id_tipo_documento == 1);
                //var CPF = db.T_Documento_x_Paciente.Where(s => s.Cd_Paciente == id && s.Id_tipo_documento == 2);

                //var viewModel = new PacienteViewModel();
                PacienteViewModel PacienteViewModel = new PacienteViewModel();
                PacienteViewModel.T_Paciente = (from p in db.T_Paciente.Include(t => t.T_CIDADE).Include(t => t.T_ESTADO).Include(t => t.T_PAIS).Include(t => t.T_Sexo).Include(t => t.T_Documento_x_Paciente)
                                                where p.Cd_Paciente == id
                                                select p).FirstOrDefault();
                //PacienteViewModel.T_Documento_x_Paciente = (from rg in db.T_Documento_x_Paciente
                //                                            where rg.Cd_Paciente == id && rg.Id_tipo_documento == 1
                //                                            select rg).FirstOrDefault();

                // Preencha as propriedades do objeto viewModel como desejar
                // e o retorne para a view

                //T_Paciente t_Paciente = (from p in db.T_Paciente.Include(t => t.T_CIDADE).Include(t => t.T_ESTADO).Include(t => t.T_PAIS).Include(t => t.T_Sexo)
                //                         join drg in db.T_Documento_x_Paciente on p.Cd_Paciente equals drg.Cd_Paciente
                //                         join dcpf in db.T_Documento_x_Paciente on p.Cd_Paciente equals dcpf.Cd_Paciente
                //                         where p.Cd_Paciente == id
                //                         && drg.Id_tipo_documento == 1
                //                         && dcpf.Id_tipo_documento == 2
                //                         select p).FirstOrDefault();

                //var t_Paciente = from p in db.T_Paciente.Include(t => t.T_CIDADE).Include(t => t.T_ESTADO).Include(t => t.T_PAIS).Include(t => t.T_Sexo)
                //                         join drg in db.T_Documento_x_Paciente on p.Cd_Paciente equals drg.Cd_Paciente
                //                         join dcpf in db.T_Documento_x_Paciente on p.Cd_Paciente equals dcpf.Cd_Paciente
                //                         where p.Cd_Paciente == id
                //                         && drg.Id_tipo_documento == 1
                //                         && dcpf.Id_tipo_documento == 2
                //                         select new { Nm_Paciente = p.Nm_Paciente 
                //                                    , Ds_Logradouro = p.Ds_Logradouro
                //                                    , Ds_Bairro = p.Ds_Bairro
                //                                    , Nr_Logradouro = p.Nr_Logradouro
                //                                    , Ds_Complemento = p.Ds_Complemento
                //                                    , CD_Cep = p.CD_Cep
                //                                    , Cd_Cidade = p.Cd_Cidade
                //                                    , Cd_Estado = p.Cd_Estado
                //                                    , Cd_Pais = p.Cd_Pais
                //                                    , Ds_Email = p.Ds_Email
                //                                    , Id_ativo = p.Id_ativo
                //                                    , Cd_Sexo = p.Cd_Sexo
                //                                    , Dt_Nascimento = p.Dt_Nascimento
                //                                    , Nr_Residencial = p.Nr_Residencial
                //                                    , Nr_Comercial = p.Nr_Comercial
                //                                    , Nr_Celular = p.Nr_Celular
                //                                    , Dt_Criacao = p.Dt_Criacao
                //                                    , Nr_Peso = p.Nr_Peso
                //                                    , Nr_Altura = p.Nr_Altura
                //                                    , Ds_Documento_Paciente_RG = drg.Ds_Documento_Paciente
                //                                    , Ds_Documento_Paciente_CPF = dcpf.Ds_Documento_Paciente
                //                                    };

                //if (t_Paciente == null)
                if (PacienteViewModel == null)
                {
                    return HttpNotFound();
                }
                //return View(t_Paciente);
                return View(PacienteViewModel);

    Por favor, quem poder e quiser me ajudar...será muito bem vindo...rsrsrsrs

    Valeu

    sexta-feira, 24 de junho de 2016 19:30