Это в основном правильно, хотя работа по созданию классов, тестированию всего и т. Д. Не тривиальна. Все, что нужно для хранения в сеансе, должно быть сериализовано, поэтому для «специальных» типов данных вам нужно будет создавать сериализованные версии этих данных. Возможно, вы захотите узнать, почему вы сохраняете таблицы данных в своем состоянии сеанса? Я бы посоветовал вам очень хорошо взглянуть на то, что вы делаете, и сохранить там только минимальное количество - ключи, а не целые объекты.
Мой текущий клиент использует сеанс SQL с большим количеством больших объектов, и он работает медленно, потому что существует необходимость сериализации и десериализации этих больших объектов, а также записи и чтения из БД.
И вы могли бы когда-нибудь в этом понять, почему люди говорят, что переменные сеанса - плохая идея. Масштабируемость является большой проблемой, как от объема работы, которую вы должны сделать сейчас, так и от размера вашего хранилища сеансов sql.
ETA: Как уже говорили другие, проблема с сериализуемостью одинакова для любого типа состояния сеанса.