MVC对象实例还是静态类?

时间:2009-01-09 01:09:31

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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