Campos decimais no Entity Framework 4.x

19/06/2011 Por portal

Eu sou fã número um da adoção de um modelo mapeamento objeto relacional pelos enormes ganhos que temos na produtividade do código e simplificação da manutenção além é claro de usar na prática todos os nossos conhecimentos de orientação a objetos. Já estamos usando o Entity Framework em vários projetos com sucesso. Mas em um novo cliente com banco de dados bem antigo tivemos um pequeno problema referente a modelagem. Na prática ele tinha um campo chave primária que estava com o tipo “Decimal” e isso resultou em uma incompatibilidade apresentando a mensagem de erro “Common Language Runtime detected an invalid program”.

 

O engraçado que esse erro só estava apresentando no IIS 7.5 durante os testes no servidor de homologação. Como tinha outros problemas revisamos primeiramente todo o IIS até depois rastreando usando os logs e chegar no ponto especifico do código que estava com o problema que por falar com Visual Studio 2010 e IIS nos conseguimos rastear por completo nossa aplicação. Com isso fomos pesquisar e encontramos justamente o problema referente ao campo “Decimal” a solução adotada foi mudar para inteiro e atualizar o mapeamento do Entity Framework dentro do Visual Studio e ele passou a funcionar.

 

A questão já foi relatada a Microsoft por outras pessoas e estou passando aqui para vocês para caso estejam lidando com esse cenário de banco de dados antigo possam resolver rapidamente sem problemas.

 

Para saber mais:
QuestionCLR detected an Invalid Program
InvalidProgramException using EntityFramework POCO template & table w/ decimal primary key

Até a próxima!!!!
[],
Ramon Durães