【发布时间】:2012-12-07 06:41:08
【问题描述】:
以下哪一项是正确的,或者至少是最好的一项:
创建一个在控制器中检索数据的方法:
public ActionResult Index()
{
var list = _context.MyClass.Take(10);
return View(list);
}
或直接使用上下文:
public ActionResult Index()
{
var list = MyClass.MethodWrapperToGet(10);
return View(list);
}
我对第一个问题的担心是数据库过于暴露;让开发者很容易误用。
【问题讨论】:
-
取决于您的实现或您希望如何分离关注点。如果您遵循存储库模式并可能使用 IoC 容器,则第一个很好。
-
第二个如果你将它编程到一个接口,将允许对一个模拟上下文进行简单的单元测试,而不是单元测试你的控制器。我认为这是一个加分项。
标签: c# asp.net-mvc entity-framework