Вы можете использовать одноэлементный шаблон в DataContext, но вам понадобится какое-то управление жизненным циклом для него, так как нецелесообразно долго его хранить. (запрос заканчивается, возможно, удалите его)
Пример на C #, но я надеюсь, что вы понимаете это.
public class MyDataContext
{
public static MyDataContext Current
{
get
{
MyDataContext context = (MyDataContext)HttpContext.Current.Items["Context"];
if(context == null)
{
context = new MyDataContext();
HttpContext.Current.Items["Context"] = context;
}
return context;
}
}
}
public class MyEntity
{
public MyDataContext DataContext
{
get{ return MyDataContext.Current;}
}
}
В Global.asax вы можете подключить событие Application_EndRequest
и вызвать MyDataContext.Current.Dispose();
, чтобы избавиться от контекста вручную, а не ждать, пока GC сделает это.