Какой бизнес имеет бизнес-уровень с Session?Чтобы еще немного понять это утверждение, подумайте о нем следующим образом: зачем бизнес-уровню постоянно сохранять информацию, относящуюся к пользователю?
Бизнес-уровню необходимо работать с и обрабатывают данные, относящиеся к пользователю, но не сохраняют это.Это означает, что данные, которые хранятся в данный момент, должны быть введены, то есть они должны быть переданы в качестве параметра нужным функциям.Делая это таким образом, вы формируете архитектурный контракт, он говорит «эй, мне нужна эта пользовательская информация, чтобы выполнять свою работу» очень явным образом - вы не выполняете какое-то волшебство под капотом с некоторыми случайными ранее сохраненными значениями.Это нормально для бизнес-уровня, чтобы аутентифицировать или авторизовать пользователя каким-либо образом, используя эти данные, но он должен отбросить результаты аутентификации после того, как он закончил с ними.Если значения сохраняются для сохранения одного или двух вызовов в базе данных, у вас есть проблема с эффективностью вызовов базы данных, потому что вызовы базы данных для простых вещей, подобных этому, быстрые.
Поэтому я предлагаюудалить все ссылки на Session из вашего бизнес-уровня и изменить сигнатуры функций, включив в них пользовательские данные, которые вам нужно передать.