У меня есть ситуация, когда вспомогательный класс со статическим членом DBContext заполняет логические поля моделей другими значениями, чем нестатическая переменная DBContext.Последний получает правильные переменные.
В этом случае у меня есть пользователь с указанным именем пользователя в базе данных, где для "isAdmin" установлено значение true.Статический член возвращает объект User с isAdmin = false, другой возвращает его с true, как и ожидалось.См. Ниже.
Кто-нибудь знает, почему это произойдет?
Вот модель:
public class User
{
[Required]
public int UserID { get; set; }
[Required]
public string username { get; set; }
[Required]
public bool isAdmin { get; set; }
}
И проблемный класс помощника выглядит следующим образом:
public static class UserAuthHelper
{
private static SSBPDContext db = new SSBPDContext();
public static User getUser(string username, string plaintextPassword)
{
var users = db.Users.Where(u => u.username.Equals(username));
User user = (from u in db.Users
where u.username.Equals(username)
select u).FirstOrDefault();
//this user has isAdmin = false
User otherUser;
using (var db2 = new SSBPDContext())
{
otherUser = (from u in db2.Users
where u.username.Equals(username)
select u).FirstOrDefault();
//otherUser has isAdmin = true
}
}
}