Ajuda com Model e Classe

15/09/2014

0

Tenho essa classe:


public class MontaArvoreAcao
        {
            public int IDRuptura { get; set; }
            public DateTime DataRuptura { get; set; }
            public int IDMotivo { get; set; }
            public string Motivo { get; set; }
            public int IDOrigem { get; set; }
            public string CodigoPDV { get; set; }
            public string UF { get; set; }
            public string Cidade { get; set; }
            public string Cnpj { get; set; }
            public string Descricao { get; set; }
            public string Codigo_Apresentacao { get; set; }
            public string Unidade_Negocio { get; set; }
            public string Franquia { get; set; }
            public string Familia { get; set; }
            public string Descricao { get; set; }
        }


A finalidade dessa classe é para eu ter uma Model que eu possa pegar na minha view e trabalhar com ela lá. Essa classe(Model) será alimentada com esse código na controller:

 [HttpPost]
            public JsonResult ArvoreAcao(string _uf)
            {
                RupturaEntities db = new RupturaEntities();
    
                var monta_arvore = (from rup in db.Ruptura
                                      from apr in db.Apresentacao.Where(apr => apr.Codigo_Apresentacao == rup.Codigo_Apresentacao)
                                      from pdv in db.PDV.Where(pdv => pdv.CodigoPDV == rup.CodigoPDV)
                                      from mot in db.Motivo.Where(mot => mot.IDMotivo == rup.IDMotivo)
    
                                      select new {
                                          rup.IDRuptura,
                                          rup.DataRuptura,
                                          rup.IDMotivo,
                                          mot.Motivo1,
                                          rup.IDOrigem,
                                          rup.CodigoPDV,
                                          pdv.UF,
                                          pdv.Cidade,
                                          loja = pdv.Cnpj + " - " + pdv.Descricao,
                                          rup.Codigo_Apresentacao,
                                          apr.Unidade_Negocio,
                                          apr.Franquia,
                                          apr.Familia,
                                          apr.Descricao}).ToList().Distinct().OrderBy(apr => apr.Descricao);
    
                ViewBag.result_arvore = monta_arvore;
    
                return Json(new { monta_arvore}, JsonRequestBehavior.AllowGet);
            }


A dúvida é: Como eu faço para pegar essa Model na View com todos os valores vindo da linq acima, ou seja, do banco de dados? Uma pergunta a mais: Todos os ID's dessa classe são Foreign Key. Está correto a forma de representar uma Foreign Key como está na classe ou tenho que fazer um ICollection?
Pjava

Pjava

Responder

Post mais votado

15/09/2014

Para retornar da consulta uma coleção do seu model, bata instanciá-la na operação select, da seguinte forma:
from ... in ...
select new MontaArvoreAcao(){
  IDRuptura = rup.IDRuptura,
  DataRuptura = rup.DataRuptura,
  ...
}


E se for o caso, no final você converte para List com o método ToList().

Joel Rodrigues

Joel Rodrigues
Responder

Mais Posts

15/09/2014

Joel Rodrigues

E sobre os IDs, está correto sim, ou ao menos está adequado para sua necessidade. Se você não precisar, não há porque adicionar mais uma propriedade no modelo, ainda mais uma coleção, que para ser carregada iria consumir recursos da sua aplicação de forma desnecessária.
Responder

15/09/2014

Pjava

Valeu e obrigado. Faz um tempão que eu não anda por essas bandas.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar