假设我的数据库中有一个人员表。每当一个新人被添加到数据库中时,就会生成一个 pdf 并通过电子邮件发送给某人。
此逻辑是否进入模型,因此应用程序所做的只是传入数据以插入新人员,并且模型还处理 pdf 和电子邮件?
或者这个逻辑是否进入 Controller ?
如果这应该进入模型,并且我正在使用 Entity Framework ,我该怎么做?创建一个包装 .edmx
模型的 .cs 类?
最佳答案
据我了解,您不会想用这种逻辑搞乱 Controller 。属于 Controller 的内容将定义将传递到 View 的模型或打开或关闭验证。 Controller 还应该控制其他几个与 View 相关的事物,但这只是其中几个。我想要表达的一般观点是, Controller 负责通过调用服务或模拟存储库来填充模型,然后将这些模型传递给 View 。
为了完成您所解释的操作,我将添加一个位于数据访问层之上的服务层(dal - 您的 EDMX 和存储库所在的位置)。在该服务层内,我将调用方法或服务来生成 pdf 并发送电子邮件。
存储库和数据访问层应该只关心查询数据库和检索记录。这与您使用什么 ORM 或数据访问工具无关。检索到的记录将传递到服务层,您可以在其中对数据执行操作(例如验证或发送 pdf),然后返回表示层以在 View 中显示所需的任何格式的记录。 Controller 不会对检索到的数据执行任何逻辑操作,而是将其传递给 View 。
如果您想了解有关我所描述的架构布局的更多详细信息,那么我很乐意为您提供更多了解。
关于asp.net - 业务逻辑在MVC模式中属于什么位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11232707/