适当的MVC存储库实例化

时间:2015-03-31 00:57:44

标签: c# asp.net-mvc

如果在之前的帖子中已经回答了这个问题我很抱歉;我根本找不到我的问题的答案。

我正在观看MVC教程视频,在他们的一个控制器中,他们在他们需要的每种方法中都实例化了一个存储库。我已经习惯了以前的ASP.NET DAL,但他们发表了这样的评论:

  

...我不应该在每个方法中实例化存储库,我   应该使用MVC的服务......

我很想知道这究竟意味着什么,如果在我需要它的控制器方法中实例化存储库将是不好的做法。

1 个答案:

答案 0 :(得分:1)

我不是专家,但我认为您应该只在Controller的构造函数中实例化一次您的存储库,如下所示:

public interface ISampleRepository { }
public class SampleRepository : ISampleRepository { }

public class HomeController : Controller
{
    private ISampleRepository myRepository;

    public HomeController()
    {
        myRepository = new SampleRepository();
    }
}

您不必在每个操作方法中实例化您的存储库。我不确定,但我认为每次实例化您的存储库时都会创建一个新的数据库上下文

因此,多次实例化同一个存储库似乎对我来说太过分了。