정적 DBContext 멤버가있는 도우미 클래스가 비 정적 DBContext 변수와 다른 값으로 모델의 부울 필드를 채우는 상황이 있습니다. 후자는 올바른 변수를 얻고 있습니다.잘못된 값을 반환하는 정적 DBContext
이 경우 "isAdmin"이 true로 설정된 데이터베이스에서 지정된 사용자 이름을 가진 사용자가 있습니다. 정적 멤버는 isAdmin = false를 사용하여 User 객체를 반환하고 다른 멤버는 예상대로 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
}
}
}
제목 앞에 "C# MVC3 -"등을 붙이지 마십시오. 그것이 바로 태그가있는 것입니다. –
오, 죄송합니다. 고쳐 주셔서 감사합니다. –