我工作的地方是将几个 Web 应用程序(WebForm 和 MVC)迁移到 Web 农场。会话将由 SQL Server 管理。
问题永远是遗留问题!
对于那些更容易使用会话、存储字符串、返回等的情况,代码将保持不变。当在某些特定情况下,List<typed>
会话中存储了不可序列化的对象等时,问题就开始了。
我正在考虑以一种 DRY 风格重构这一切。
大多数存储在会话中的列表都是由实体框架查询产生的集合。老实说,我不知道它周围是否有任何捷径。立即快速想到的唯一解决方案是在遗留系统的数据库中创建一个表并存储这些对象 - 然后创建一些机制来偶尔删除不活动的行。
所以在任何地方使用:Session["mList"] = myList;
我会交易:CustomSession.AddsInDatabase("mList", myList);
妥善照顾登录用户、插入时间等。
这是一个很好的选择,还是有其他的?
:)