Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 2 ASP.NET MVC 2将逻辑放在何处_Asp.net Mvc 2_3 Tier - Fatal编程技术网

Asp.net mvc 2 ASP.NET MVC 2将逻辑放在何处

Asp.net mvc 2 ASP.NET MVC 2将逻辑放在何处,asp.net-mvc-2,3-tier,Asp.net Mvc 2,3 Tier,我有一个ASP.NETMVC2应用程序,其中包含一些复杂的业务规则,我正在尝试决定将特定逻辑放在何处 该逻辑在创建记录时发生,基于该记录的某些字段,需要创建其他记录 我目前正在使用ORM的repository模式,在我的repository类中最容易放置此逻辑,但我觉得这是一个非常脆弱的位置,没有重要的规则,我会把它直接放在我的部分模型类中,这些类有我的验证和元数据,但我必须在我的控制器或存储库中调用方法,这可能会将太多关于实现的知识扩展到这些层 你给我的最佳实践建议是什么 谢谢 在控制器和存储

我有一个ASP.NETMVC2应用程序,其中包含一些复杂的业务规则,我正在尝试决定将特定逻辑放在何处

该逻辑在创建记录时发生,基于该记录的某些字段,需要创建其他记录

我目前正在使用ORM的repository模式,在我的repository类中最容易放置此逻辑,但我觉得这是一个非常脆弱的位置,没有重要的规则,我会把它直接放在我的部分模型类中,这些类有我的验证和元数据,但我必须在我的控制器或存储库中调用方法,这可能会将太多关于实现的知识扩展到这些层

你给我的最佳实践建议是什么


谢谢

在控制器和存储库之间可以有一个服务层。存储库对您的模型执行简单的CRUD操作。服务方法可以使用多个简单的存储库调用来组合业务操作。此业务操作将向控制器公开。

当您说服务层时,它是作为实际服务实现的,如WCF/data services/等,还是只是控制器和存储库之间的另一层代码/类?如果是这样,您的模型中的每个实体通常会有一个服务类吗?你知道使用这种模式的好例子吗?我见过一些例子使用MVC中的存储库模式,但没有使用服务层(或者它就在那里,我没有注意到)。