2015-03-31 74 views
0

如果已在上一篇文章中回答了此问题,则表示歉意;我只是找不到针对我的问题的答案。正确的MVC存储库实例化

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

...我不应该在每一个方法实例库,我 应该利用MVC的服务。 ..

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

回答

1

我不是专家,但我认为你应该在控制器的构造函数实例化你的仓库只有一次这样的:

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

public class HomeController : Controller 
{ 
    private ISampleRepository myRepository; 

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

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

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