Entity Framework Object Context для каждого запроса в ASP.NET? [закрыто]

Считается ли хорошей практикой использовать один ObjectContext для запроса? Я читал, что эти объекты должны быть недолговечными и не слишком дорогостоящими для создания экземпляров, но делает ли это случай привлекательным для одного из них на запрос? Если да, есть ли шаблоны, которые правильно это реализуют?

 kfc14 мая 2013 г., 15:09
отличный! Это'с веб-формами
 ken2k14 мая 2013 г., 15:05
Краткий ответ: да. Для более подробной информации (шаблоны ...): это веб-формы или MVC?

Ответы на вопрос(1)

Решение Вопроса

это общепринятый подход - использовать ObjectContext / DbContext с временами жизни для HttpRequest.Вот'образец Я предоставил в другом ответе.

Как бы то ни было,Лучше оставить эти пожизненные руководства в библиотеке IoC. ЗнаменитыеЗамок Виндзор,Autofac.

Обновить:

Чтобы избавиться от контекста, вы можете использоватьApplication_EndRequest метод в Global.asax. Следующий код не проверен, но выполучу идею:

protected virtual void Application_EndRequest()
{
    var key = "MyDb_" + HttpContext.Current.GetHashCode().ToString("x")
                      + Thread.CurrentContext.ContextID.ToString();
    var context = HttpContext.Current.Items[key] as MyDbContext;

    if (context != null)
    {
        context.Dispose();
    }
}
 kfc15 мая 2013 г., 11:48
Кажется, немного сложно использовать МОК с веб-формами. Так как у меня есть небольшое приложение, я думаю, чтоЯ выберу решение, предложенное в указанном образце. Итак, есть ли способ принудительно избавиться от объекта контекста в области запроса после завершения запроса?
 Kamyar15 мая 2013 г., 11:58
@kfc обновил мой ответ.

Ваш ответ на вопрос