如果在之前的帖子中已经回答了这个问题我很抱歉;我根本找不到我的问题的答案。
我正在观看MVC教程视频,在他们的一个控制器中,他们在他们需要的每种方法中都实例化了一个存储库。我已经习惯了以前的ASP.NET DAL,但他们发表了这样的评论:
...我不应该在每个方法中实例化存储库,我 应该使用MVC的服务......
我很想知道这究竟意味着什么,如果在我需要它的控制器方法中实例化存储库将是不好的做法。
答案 0 :(得分:1)
我不是专家,但我认为您应该只在Controller的构造函数中实例化一次您的存储库,如下所示:
public interface ISampleRepository { }
public class SampleRepository : ISampleRepository { }
public class HomeController : Controller
{
private ISampleRepository myRepository;
public HomeController()
{
myRepository = new SampleRepository();
}
}
您不必在每个操作方法中实例化您的存储库。我不确定,但我认为每次实例化您的存储库时都会创建一个新的数据库上下文。
因此,多次实例化同一个存储库似乎对我来说太过分了。