Te damos la bienvenida a nuestra página web, en este sitio vas a hallar la resolución que andabas buscando.
Solución:
Cuando EF recupera una entidad de la base de datos, toma una instantánea de los valores originales de todas las propiedades de esa entidad. Posteriormente, a medida que se realicen cambios en los valores de estas propiedades, los valores originales seguirán siendo los mismos mientras que los valores actuales cambian.
Sin embargo, para que esto suceda, EF debe realizar un seguimiento de la entidad durante todo el proceso. En una aplicación web u otra aplicación de n niveles, normalmente los valores se envían al cliente y se desecha el contexto utilizado para consultar la entidad. Esto significa que EF ya no realiza el seguimiento de la entidad. Esta es una buena y buena práctica.
Una vez que la aplicación vuelve a publicar, la entidad se reconstruye utilizando los valores del cliente y luego se vuelve a adjuntar al contexto y se establece en un Modificado estado. Sin embargo, por defecto, los únicos valores que regresan del cliente son los valores actuales. Los valores originales se pierden. Por lo general, esto no importa a menos que esté haciendo una concurrencia optimista o quiera tener mucho cuidado al actualizar solo los valores que realmente han cambiado. En estos casos, los valores originales también deben enviarse al cliente (generalmente como campos ocultos en una aplicación web) y luego volver a aplicarse como los valores originales como parte del proceso de adjuntar. Esto no sucedía en el ejemplo anterior y es por eso que los valores originales no se mostraban como se esperaba.
si cambias
dbEntry.OriginalValues.GetValue
para
dbEntry.GetDatabaseValues().GetValue
entonces eso funciona