Definindo campos atualizados para operação de Update em uma aplicação Asp.Net MVC utilizando Entity Framework

Por padrão, o código gerado quando você clica com o botão direito do mouse sobre a pasta Controller de sua aplicação e seleciona a opção Adicionar Controller, irá atualizar todos os campos ou propriedades da entidade de dados selecionada.

Algumas entidades, podem possuir informações que não devem ser incluídas na atualização do registro. Um exemplo comum ocorre quando há um campo de imagem. Caso uma nova imagem não tenha sido selecionada, o código de Update precisa informar para o Entity Framework que o valor original não foi alterado. Veja o exemplo abaixo para a propriedade Foto da entidade Post.

db.Entry(post).Property(o => o.Foto).IsModified = false;

No caso de querer personalizar os campos ou propriedades que serão atualizadas pela função, utilize o método Attach disponibilizado pela instância do objeto que representa sua entidade no contexto da aplicação. Por exemplo:

db.Projetos.Attach(projeto);

Defina o valor false para o atributo IsModified de todas as propriedades que não deseja atualizar e true para as demais. Veja no exemplo abaixo, que o código verifica se um arquivo foi enviado e define o valor da referida propriedade de acordo.

snippet-ef-update.png

No exemplo acima, os demais campos têm a propriedade IsModified definida com o valor true mas não é necessário por ser o valor padrão. O método SaveChanges() replica as alterações para o banco de dados.





Eryx Guimarães

Eryx Guimarães desenvolve e mantém soluções para empreendimentos na web.

Entre em Contato

Contato