Contexto do objeto da estrutura de entidades no objeto de sessão do ASP.NET?
Temos um aplicativo Asp.NET Web Forms de várias camadas. A camada de dados tem uma classe chamadaDataAccess
quais impulsosIDisposable
e tem uma instância do nosso Entity Framework Object Context como um campo privado. A classe tem vários métodos públicos retornando várias coleções de Entidades e descartará seu Contexto de Objeto quando for descartado.
Devido a vários problemas que enfrentamos, decidimos que seria uma grande vantagem manter o Contexto do Objeto (ou uma instância deDataAccess
) no escopo por mais tempo no servidor. Foi feita uma sugestão para manter uma instância noHttpContext.Current.Items
coleção deesta postagem para ter uma instância por solicitação de HTTP.
O que estou me perguntando é: que problemas / preocupações / problemas surgiriam ao armazenar uma instância do nosso Contexto do Objeto no diretórioHttpContext.Current.Session
objeto????
Isso será relativamente rápido de implementar e não afetará nossos muitos testes de unidade existentes.
Usaremos o AutoFac e uma classe ServiceProvider para fornecer instâncias. Quando uma instância do ObjectContext é necessária, ela será retornada por código semelhante a este:
private static Entities GetEntities(IContext context)
{
if (HttpContext.Current == null)
{
return new Entities();
}
if (HttpContext.Current.Session[entitiesKeyString] == null)
{
HttpContext.Current.Session[entitiesKeyString] = new Entities();
}
return (Entities)HttpContext.Current.Session[entitiesKeyString];
}
Felicidades.