none
Persistir objeto EF (View != Model) RRS feed

  • Discussão Geral

  • Boa tarde pessoal.

    Tenho uma dúvida antiga quanto a utilização da persistência de um objeto no EntityFramework via MVC.

    Vamos imaginar a seguinte situação:
    Possuo uma classe Carros que possui 10 propriedades.
    Possuo uma view tipada também, porém vamos supor que a propriedade "placa" e "chassi" não estão na tela.

    Quando eu realizar o post desse objeto através do MVC, o objeto carros será enviado SEM PLACA e SEM CHASSI, já que ambos campos não constam em minha view, e consequentemente, após persistir este objeto através do Entity Framework, os campos serão setados para null em meu banco de dados.

    Aí vejo três soluções possíveis, porém todas me incomodam...

    • Campo hidden;
    • Carregar o objeto previamente do banco e transferir seus valores para os campos que não estão presentes na view, tipo "carro.chassi = carroBancoDados.chassi";
    • Definir EntityState para Unchanged para cada um dos atributos que não estão presentes na view;

    Enfim, campo hidden é perigoso. As duas outras alternativas são feias a nível de código...

    Estou estudando e fazendo testes no web, não tenho conhecimento avançado ainda...
    Mas por parte de vocês, como solucionam este acontecimento em suas aplicações?

    Há uma forma "bonita" de se fazer isso?

    Agradeço qualquer dica! Valeu pessoal ;)

    terça-feira, 18 de outubro de 2016 17:31