业务逻辑在哪里属于MVC模式

时间:2012-06-27 18:27:39

标签: asp.net asp.net-mvc design-patterns edmx

假设我在数据库中有一个人员表。每当将新人添加到数据库中时,将生成pdf并通过电子邮件发送给某人。

这个逻辑是否会进入模型,因此所有应用程序都会传入数据以插入新人,模型还会处理pdf和电子邮件?

或者这个逻辑是否进入控制器?

如果这应该进入模型,我正在使用实体框架,我该怎么做?创建一个包装.edmx模型的.cs类?

1 个答案:

答案 0 :(得分:2)

我的理解是你不想用这种逻辑来破坏控制器。属于控制器的东西将是定义将传递给视图或打开或关闭验证的模型。控制器应该控制其他一些与视图相关的东西,但这只是一对。我想要做的一般观点是控制器负责通过调用服务或模拟存储库来填充模型,然后将这些模型传递给视图。

要做你要解释的事情,我会添加一个位于数据访问层之上的服务层(dal - 你的EDMX和存储库所在的位置)。在该服务层内部,我将调用方法或服务来生成pdf并发送电子邮件。

存储库和数据访问层应该只关注查询数据库和检索记录。这与您使用的ORM或数据访问工具无关。检索到的记录将传递到服务层,您可以在其中对数据执行操作(例如验证或发送pdf),然后返回表示层,以便在视图中显示它所需的任何记录格式。控制器不会对检索到的数据执行任何逻辑操作,而只是将其移交给视图。

如果您想了解我所描述的架构布局的更多细节,那么我很乐意为您提供更多见解。