【发布时间】:2014-01-10 21:13:02
【问题描述】:
我正在使用 MVC4、EF5、存储库模式和 Unity IoC。 逻辑代码块应该放在哪里?
- 在特定模型的存储库中
- 控制器
- 还是通过扩展模型的部分类?作为静态函数?
在我的应用程序中,每个控制器都拥有一个工作单元的实例。如果逻辑将保存在其中一个存储库或部分类中,因此需要将工作单元作为参数发送。您会推荐什么作为最佳做法?
谢谢:)
【问题讨论】:
-
“逻辑”是什么意思?商业逻辑?存储库应注入适当的工作单元。
-
我有一个复杂的业务逻辑,我想在我的应用程序中编写代码。在我看来,控制器不是适合它的地方,因为我不希望它充满逻辑。既不在存储库本身内部。另一方面,如果我使用部分类(使用静态函数),我将不得不发送工作单元的引用..
-
我会把它放在命令处理程序中。我们的控制器将所有逻辑传递给 CommandHandler,它们和业务实体包含所有业务逻辑。基本上遵循与本文类似的内容cuttingedge.it/blogs/steven/pivot/entry.php?id=91。我们的控制器对存储库或工作单元一无所知,因为它们都被注入到命令处理程序中
标签: asp.net-mvc-4 repository-pattern unit-of-work