MVC:精益控制器vs注入存储库?

时间:2011-05-03 19:10:04

标签: asp.net-mvc model-view-controller architecture

理想情况下,控制器应该没有域逻辑吗? 如何在书呆子晚餐中注入一个存储库类?

如果您是那些不将repo注入控制器的人之一,那么如何命名包含引用存储库访问器的代码并使用模型类的app / domain层类?或者你进一步拆分它?怎么样?

添加到问题:

对于上述问题,请您考虑三种情况:

  1. 检索模型并返回视图
  2. 接收表单编辑以验证并持久保存到数据库
  3. 订单处理
  4. 我希望这一添加可以使问题更加清晰,以便我们可以参考常见的场景类型。

2 个答案:

答案 0 :(得分:3)

我们将存储库 interfaces 注入我们的控制器,因此我们的控制器不关心域逻辑实现。我们的Io​​C容器负责确定将哪个类用作每个存储库接口的实现。

答案 1 :(得分:2)

数据访问逻辑!=域逻辑

如果您尝试执行DDD,则可以使用存储库注入控制器。

我根据我目前使用的模式命名了ElephantRepository,ElephantService或ElephantQuery。


我真的很想看到一个MVC应用程序没有从控制器访问存储库/ service / dal层。 ;)