Note Solved this has been edited More information check the edits
When performing a post back with an entities model in MVC. The model binder neglects to bind the original values. So if anyone is using a derivative of save changes to audit log (whether that be Overriding or tying into the events) there is a high possibility for it to not log you changes correctly to fix this you can fix the problem by using this function which clones the current values, reloads the object, and then reset the current values.
void SetCorrectOriginalValues(DbEntityEntry Modified)
{
var values = Modified.CurrentValues.Clone();
Modified.Reload();
Modified.CurrentValues.SetValues(values);
Modified.State = EntityState.Modified;
}
You can gain access to the DbEntityEntry though the change tracker, or the entry function from your context. If there are any improvement or things I'm missing out let me know so I can correct them.