Estoy desarrollando una aplicación web ASP.Net MVC 3 con Entity Framework 4. Cuando un usuario entra en mi solicitud me gustaría almacenan su entidad de usuario (nombre, apellido, etc.) en una sesión que luego se puede acceder a través de la aplicación.ASP.Net MVC almacén de la entidad de usuario en la sesión
entiendo que esto puede no ser una buena idea porque cuando el ObjectContext cierra/se deshace, entonces la entidad de usuario es independiente y los datos de usuario se podrían perder.
pensé otro método podría ser, cuando el usuario inicia una sesión, asignar el ID de usuario (clave principal) para una variable de sesión, es decir:
HttpContext.Current.Session["currentUserID"] = user.userID;
continuación, crear una clase en la clase UserService así:
public static User CurrentUser
{
get
{
return Data.DBEntities.Users.Where(u => u.userID == HttpContext.Current.Session["currentUserID"]).FirstOrDefault();
}
}
Que debería devolver una entidad de usuario basada en la variable de sesión del ID de usuario actual. Esto no está funcionando para mí, sin embargo, yo estoy haciendo un par de errores
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
Este es el enfoque que estoy tomando correcto, o hay una mejor manera?
Cualquier comentario sería muy apreciado.
Gracias por su respuesta. – tgriffiths