是否可以从同一个控制器中使用存储库和服务?

时间:2010-12-28 13:34:34

标签: asp.net-mvc

我使用存储库来执行基本的CRUD操作,并使用服务来实现这些存储库的业务逻辑。

我倾向于在控制器中同时使用存储库和服务。我的问题是 - 就标准架构而言,这是否可以?我应该将基本存储库移动到基本服务,因此我的控制器只使用服务而不是存储库吗?希望这有意义,谢谢。

2 个答案:

答案 0 :(得分:2)

我建议您将您的存储库放在服务之后,因此控制器只会使用服务。那样你:

  • 维护漂亮的分层架构(洋葱架构模式);
  • 让您的控制器操作保持干净清晰。

实际上,没有什么可以阻止你将Repos和Services一起注入你的控制器,但它只是感觉不对 - 服务存在的重点是什么?

答案 1 :(得分:1)

只要您不在控制器中放置任何商业逻辑就可以了。如果没有添加任何逻辑/行为,那么创建一个包装存储库的新服务类是没有意义的。

  

我倾向于使用存储库和   服务同时在内   控制器。

考虑控制器/操作功能及其依赖性,如果您使用的是存储库和服务,那么您应该创建一个包装功能的新服务类,并使控制器/操作依赖于该单个服务。理想情况下,操作应仅依赖于一项服务。

当我需要的是CRUD(例如管理员应用程序)时,我已经让控制器直接调用了存储库。

相关问题