У меня есть веб-приложение EF4 / ASP.NET, структурированное для использования POCO и универсальных репозиториев, основанное, в основном, на этой превосходной статье .
Приложение довольно сложное с одной страницейэто включает в себя выбор и связывание нескольких объектов для создания сложного профиля пользователя.Для этого требуется доступ к нескольким типам сущностей (около 20) и связанным с ними репозиториям в нескольких публикациях.
При первом обращении к репозиторию он использует существующий контекст данных, если он существует, иначе он создает новый контекст.Проблема в том, что если время жизни контекста зависит только от запроса (как предлагается в статье), то вам приходится иметь дело с несколькими контекстами и сложностью, связанной с отсоединением и присоединением сущностей из контекстов.
Мое решение состоит в том, чтобы разделить контекст между публикациями, создав одну модель представления, которая включает все необходимые репозитории (инициализированные для совместного использования в одном контексте), а также любые связанные данные и сохранить эту модель в переменной Session, получаемой из Sessionна последующих страницах запросов.Поэтому поддержание одного и того же контекста во всех сообщениях до тех пор, пока профиль не будет сохранен.
Это работает нормально, НО меня беспокоит, что я на самом деле не знаю точно, что хранится в переменной сеанса модели или, что более важно, размерПеременная сеанса.
Итак, я полагаю, два вопроса: во-первых, я должен искать лучшее решение для обработки общего контекста по всем сообщениям (любые предложения приветствуются)?А во-вторых, что на самом деле хранится в сеансе, когда он включает в себя хранилище плюс контекст?