quarta-feira, 9 de agosto de 2017

Arquivo de Casos Inexplicáveis: Entity Framework e Stored Procedure

Quando criei esse blog, a intenção é registrar as minhas experiências para consultas futuras. A maioria dos casos são de situações que não é tão fácil de se encontrar, até mesmo na Internet, ou coisas que só a experiência pode te ajudar.
Em todos os casos, existia um problema e uma solução lógica, mas acabou de acontecer comigo,  um problema que resolveu de uma maneira tão inusitada e ilógica, que vale a pena documentar. Mas como é algo que não sei como explicar o motivo, criei essa nova seção: O Arquivo de Casos Inexplicáveis.
Não é a primeira vez que tenho um Caso Inexplicável, mas acho interessante começar a registrá-los. Mas chega de enrolar, e vamos ao caso.

Estava realizando uma modificação em um módulo aqui onde trabalho e precisei modificar uma Stored Procedure num banco SQL Server. Então, para ter certeza que as modificações estavam fazendo efeito, tive a ideia: vou deixar um breakpoint onde é executado a Stored Procedure (SP) no código e verificar o que retorna pelo debugger.
Aí começou meu inferno, depois de atualizar o Entity Framework para aceitar a nova SP, e testar, sempre que tentava visualizar o seu dado, via que a execução deu um erro e quando deixava passar, uma Exception era lançada.
Não entendi nada, deletei a SP, atualizei a Entity Framework e reinseri a SP, para adicioná-la novamente, restaurava o código do repositório, testava a SP no próprio banco de dados, e nada resolvia o erro.
Até que, por um motivo, eu resolvi tirar o breakpoint. A partir daí, o módulo voltava a sua execução normal com a SP modificada. Eu não sei a razão do Entity Framework bugar quando tento depurar, aliás, esses tipos de bugs tem até um nome que o classifica: Heinsenbug, ou seja, a tentativa de eu tentar verificar o problema altera o comportamento do objeto a ser observado.
Entretanto, esse Heinsenbug é um problema do Entity Framework, então, acredito que não tem muito que eu possa fazer.

Nenhum comentário:

Postar um comentário