【问题标题】:MVC Object Instances or Static classes?MVC 对象实例还是静态类?
【发布时间】:2009-01-09 01:09:30
【问题描述】:

我对何时创建对象实例或静态助手类感到困惑。例如,如果我调用一个方法来更新数据模型并提交到数据库,我会创建 DataContext 的一个实例。该 Datacontext 的生命周期是多少,每次需要更新新数据时都可以创建新实例吗?

在我的控制器中,我创建了一个 DataCONtext 实例,并在例如回发到控制器时重用该实例。

【问题讨论】:

    标签: asp.net-mvc model-view-controller multiple-instances object-lifetime


    【解决方案1】:

    DataContext 是一个非常轻量级的类,旨在用于工作单元。通常,我传入一个工厂,它将根据需要创建适当的 DataContext。我通常会将其包装在 using 块中并将结果转换为 List(或其他对象),以便在控制器代码中执行查询并将结果对象传递给我的视图。这样,DataContext 可以在控制器方法中(从 using 块中)处理掉。

    将工厂注入控制器的原因有两个——它允许按需创建 DataContext,它允许我使用生成模拟 DataContext 的工厂进行测试。后者允许我避免在我的单元测试中使用实际的数据库。

    【讨论】:

    • 谢谢。在控制器类中创建一个 Datacontxt 并让所有 ActionResults 共享它有什么问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    相关资源
    最近更新 更多