Salve pessoal. Voltei pra falar novamente sobre .NET, mas dessa vez sobre o EntityFramework.

Dessa vez o problema foi com os annotaions que tive que colocar nas classes geradas pelo EntityFramework. Para facilitar vou referenciar o Entity Framework 4 como EF4.

Criei meu arquivo .edmx com o nome de Entidades.edmx e o VisualStudio 2010 criou pra mim o arquivo Entidades.tt, que automaticamente criou todas as classes de entidades do meu projeto. Até ai tudo bem, mas chegou o momento em que precisei acrescentar alguns annotations para formatação de Datas e validação de campos.

Editando os arquivos que estavam “abaixo” do Entidades.tt tive o problema que toda vez que o VS2010 recriava as classes, ele apagava minhas modificações. Recorrendo ao pai dos burros, cheguei a uma solução bem legal.

Usando a annotation MetadataType, posso criar uma outra classes que possui a mesma estrutura da classes que receberá as annotations e informar as annotations de cada propriedade das entidades. Você deve estar se perguntando como criar essa annotation, se criar a annotation é nosso problema. Vamos lá!

O arquivo Entidades.tt é um template de criação das classes de entidades, então alterei esse arquivo para adicionar a annotation MetadataType para todas as minha entidades.

Aproximadamente na linha 26 adicionei o seguinte código:

O trecho de código que era assim:

Ficou assim:

Essa modificação fez com que para cada classe de entidade existiria uma classe de Metadata

Assim eu posso colocar os annotations de cada propriedade sem medo do VS2010 sobrescrever minhas alterações

 

OK! É isso ai! Espero que este artigo possa ajudar alguém que assim como eu sofreu por causa desse problema 😀

Dúvidas? Sugestões? Falei besteira? Comentem por favor!