我有以下存储库类:
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变量为每个请求创建......
答案 0 :(得分:1)
就个人而言,我会在控制器操作中实例化存储库,而不是构造函数。如果你肯定所有的控制器操作都需要存储库,那么公平,但由于控制器上的操作与UI的操作有关,因此控制器方法不需要它就不常见了。 / p>
但是在一天结束时它真的是一种风格的东西(好吧,可能会有一些轻微的性能开销);如果你想这样做,请随意!
答案 1 :(得分:-2)
无法回答整个架构,但是会有一个且只有一个存储库 Model1Repository 对象为TestController实例化,而不是每个请求一个(HTTP请求)。