У меня проблема с моей моделью в модели EF.У меня есть веб-приложение со слоем безопасности и уровнем сущности и слоем mvc3.Таким образом, в каждом слое я помещаю экземпляр моего контекста db (по одному для каждого класса в разделе основного объявления).проблема в том, что когда вы находите любого пользователя из моей базы данных для проверки процесса входа в систему, простой поиск, а не внесение каких-либо изменений в сущность, выглядит следующим образом:
var usr = db.Usuarios.First(user => user.UserName.Equals(userName));
Если я изменю пароль, например, в другом слое(в моем контроллере) и снова выйдите из системы, поиск linq (см. код вверх) всегда возвращает старый пароль.Это для контекста, который db не утилизирует и не идет в базу данных для данных, просто загрузите пользователя для модели.
Итак, как я могу заставить модель обновить данные из базы данных?Я пытаюсь, положить ленивый груз в ложь, но не работает.
db.Configuration.LazyLoadingEnabled = false;
частичная работа, если я декальцирую экземпляр моего контекста в методе для проверки правильности выполнения и утилизации этого экземпляра, но я думаю, что это лучшая практика.
вот так:
public static bool ValidateUser(string userName, string password)
{
if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password))
{
var dbtmp = new ConorContainer();
var usr = dbtmp.Usuarios.First(user => user.UserName.Equals(userName));
if (usr != null)
{
var passDescrypt = Decript(usr.Password);
dbtmp.Dispose();
return passDescrypt.Equals(password);
}
return false;
}
return false;
}