Campos decimais no Entity Framework 4.x
19 de junho de 2011Eu 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