Я бы избежал зависимости от статического HttpContext. Моя предпочтительная стратегия состоит в том, чтобы извлечь информацию из сеанса в контроллере и передать ее в качестве параметров (или установить в качестве свойств) на вашем уровне доступа к данным / хранилище. Если вы чувствуете, что должны использовать Session напрямую, я предоставлю его DAL / репозиторию таким же образом - как свойство или как параметр. Однако обратите внимание, что вы увеличиваете связь между вашим DAL / репозиторием и контроллером. Это значительно усложнит повторное использование в не-веб-настройках, т. Е. Вам придется создать поддельный сеанс, чтобы просто взаимодействовать с DAL / репозиторием, если вам когда-нибудь понадобится работать с ним из службы Windows или консольное приложение, например.