Я занимаюсь разработкой веб-приложения ASP.Net MVC 3 с Entity Framework 4. Когда пользователь входит в мое приложение, я хотел бы сохранить его пользовательскую сущность (firstName, lastName и т. Д.) В сеансе, к которому затем можно получить доступ на протяжении приложение.
Я понимаю, что это не может быть хорошей идеей, потому что, когда ObjectContext закрывается / удаляется, сущность User отсоединяется, и детали пользователя могут быть потеряны.
Я думал, что другой метод может быть, когда пользователь входит в систему, назначить userID (первичный ключ) переменной сеанса, то есть:
HttpContext.Current.Session["currentUserID"] = user.userID;
Затем создайте класс в классе UserService следующим образом:
public static User CurrentUser
{
get
{
return Data.DBEntities.Users.Where(u => u.userID == HttpContext.Current.Session["currentUserID"]).FirstOrDefault();
}
}
Который должен возвращать объект пользователя на основе переменной сеанса currentUserID. Это не работает для меня, однако, я получаю пару ошибок
Cannot convert lambda expression to type 'string' because it is not a delegate type
Delegate 'System.Func<Asset.Model.User,int,bool>' does not take 1 arguments
Правильный ли это подход, или есть лучший способ?
Любая обратная связь будет принята с благодарностью.