【问题标题】:Using Session Vars in a MVC Domain Model library在 MVC 域模型库中使用会话变量
【发布时间】:2010-04-24 11:58:15
【问题描述】:

我有一个 IQueryable 函数。在该函数中,我需要将数据存储和检索到 Session;你们能指出我正确的方向吗?

我查看了会话通常取自 HttpContext.Current 的 HttpSessionStatBase,但这似乎无法在库中完成。我错过了什么吗?

提前致谢。

【问题讨论】:

    标签: model-view-controller session


    【解决方案1】:

    我会避免依赖于静态 HttpContext。我的首选策略是从控制器中的会话中提取信息,并将其作为参数(或设置为属性)传递给您的数据访问层/存储库。如果您觉得必须直接使用 Session,那么我将以相同的方式将其提供给 DAL/存储库——作为属性或参数。但是请注意,您正在增加 DAL/存储库和控制器之间的耦合。这将使在非 Web 设置中重用变得更加困难,即,如果您需要从 Windows 服务或例如控制台应用程序。

    【讨论】:

    • 那么在控制器中使用会话变量会更好吗?
    • 是的。您的控制器已经(必然)耦合到 Web 上下文,因此您不会引入任何新的耦合。你的数据层不应该知道(或关心)它的参数来自哪里。它不应该知道它正在被 Web 应用程序使用——正是因为您可能需要它来处理一些没有 Web 上下文的离线配置或数据收集过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多