У нас есть приложение, запрограммированное с ASP.NET и C#. В приложении есть пользователи, которые могут изменять свои пароли. И наша проблема:Веб-приложение, запущенное на базе данных базы данных IIS
Когда пользователь изменяет пароль, новый пароль отправляется на сервер, и мы сохранить новый пароль в коде с помощью EntityFramework:
var entry = this.dataContext.Entry(entity);
entry.State = EntityState.Modified;
this.dataContext.SaveChanges();
Во всяком случае, когда пользователь в настоящее время пытается войти в систему с новым паролем, он терпит неудачу. Вместо этого он все еще может войти в систему со старым паролем.
Мы знаем, что в DatabaseContext все еще есть старые данные, но мы не знаем, почему и как мы можем обеспечить его загрузку новых данных после сохранения отредактированных данных. В базе данных новый пароль будет сохранен.
LazyLoadingEnabled имеет значение false, если это помогает.
Может нам помочь?
Какой код вы используете, чтобы получить его? Вы гарантировали, что пароль физически изменяется в БД? – TestWell
Да, я уверен, что пароль будет изменен. Новый пароль находится в базе данных, как только я вызываю SaveChanges(); – VAL
Вы используете статический контекст db? Поиск в БД проверяет граф объекта перед тем, как перейти к db. Возможно, у вас есть старый граф, с которым вы проверяете. – Shoe