它是ASP.NET MVC的正确架构吗? EF应用程序?

时间:2011-10-09 13:25:01

标签: asp.net-mvc entity-framework architecture

我有以下存储库类:

public class Model1Repository
{
    private NEOGOV_IdeasEntities _dataContext;
    public Model1Repository()
    {
        _dataContext = new NEOGOV_IdeasEntities();
    }
    public IdeaType IdeaType(int ID)
    {
        var q = from i in _dataContext.IdeaTypes where i.ID == ID select i;
        return q.FirstOrDefault();
    }
    ... rest methods....
}

关注控制器:

public class TestController : Controller
{
    private Model1Repository _repository;

    public TestController()
    {
        _repository = new Model1Repository();
    }
    public ActionResult Tagedit()
    {
        return View(_repository.GetDataFromDB1());
    }

    public ActionResult Avatar()
    {
        return View(_repository.GetDataFromDB2());
    }
}

它的架构是否正确?或不?据我所知,在我的情况下,_repository变量为每个请求创建......

2 个答案:

答案 0 :(得分:1)

就个人而言,我会在控制器操作中实例化存储库,而不是构造函数。如果你肯定所有的控制器操作都需要存储库,那么公平,但由于控制器上的操作与UI的操作有关,因此控制器方法不需要它就不常见了。 / p>

但是在一天结束时它真的是一种风格的东西(好吧,可能会有一些轻微的性能开销);如果你想这样做,请随意!

答案 1 :(得分:-2)

无法回答整个架构,但是会有一个且只有一个存储库 Model1Repository 对象为TestController实例化,而不是每个请求一个(HTTP请求)。