在ASP.Net MVC 3中使用“具有读/写操作和视图的控制器,使用EntityFramework”作为模板添加控制器时,它会生成如下类:
namespace Project.Controllers
{
public class Default1Controller : Controller
{
private ProjectEntities db = new ProjectEntities();
...
}
}
现在,我想知道改变它是否是一个好习惯,以便我的Controller继承一个实例化ProjectEntities的自定义基本控制器。它看起来如下:
BaseController:
namespace MatchesHorsConcours.Controllers
{
public class BaseController : Controller
{
protected MatchesEntities db = new MatchesEntities();
...
}
}
其他管制员:
namespace Project.Controllers
{
public class Default1Controller : BaseController
{
...
}
}
答案 0 :(得分:2)
当您在母版页中需要逻辑时(例如,动态渲染菜单选项),此技术非常有用。在此处阅读:http://www.asp.net/mvc/tutorials/passing-data-to-view-master-pages-cs
然而,一般来说这不是一项好技术。我建议使用依赖注入(Ninject适用于MVC并且易于实现)
答案 1 :(得分:1)
绝对不是。它完全不可测试。如果可能,请使用存储库模式和构造函数注入:Repository Pattern vs DAL