Necesito que mi linq al sql datacontext esté disponible en toda mi capa empresarial/de datos para que todos mis objetos de repositorio puedan acceder. Sin embargo, dado que esta es una aplicación web, quiero crearla y destruirla por solicitud. Me pregunto si funcionaría una clase singleton que pueda crear y conectar perezosamente el contexto de datos al HttpContext actual. Mi pregunta es: ¿se eliminaría automáticamente el contexto de datos cuando termine la solicitud? A continuación está el código de lo que estoy pensando. ¿Esto lograría mi propósito: tener una instancia de contexto de datos segura para subprocesos que está disponible de forma perezosa y se elimina automáticamente cuando finaliza la solicitud?adjuntando linq al sql datacontext a httpcontext en la capa empresarial
public class SingletonDC
{
public static NorthwindDataContext Default
{
get
{
NorthwindDataContext defaultInstance = (NorthwindDataContext)System.Web.HttpContext.Current.Items["datacontext"];
if (defaultInstance == null)
{
defaultInstance = new NorthwindDataContext();
System.Web.HttpContext.Current.Items.Add("datacontext", defaultInstance);
}
return defaultInstance;
}
}
}