Gaz*_*Gaz 7 asp.net-mvc repository service-layer
在将对象保存到持久性存储时,只是试图了解服务层和存储库层的职责.
我目前的立场是这样的:
在我的控制器中,我根据用户提交的数据(从表单中)创建了一个"Note"对象.然后用户在"NoteService"上调用"Save"(通过依赖注入存在).
在"NoteService"的"Save"方法中,我执行业务逻辑验证,然后将"Note"对象传递给"NoteRepository"的"Save"方法.
在"NoteRepository"的"保存"方法,然后进行检查,看是否有这个对象上现有的主键,如果是的话得到从数据库,它是使用"注意"对象通过传递的属性更新对象和它然后保存回到db.如果没有主键,则将对象简单地保存到数据库,然后使用新创建的主键返回到服务.
你的关注点分离对我来说听起来不错。我们遵循相同的模式,但倾向于在存储库层的右侧再添加一层。我们将其称为域层并在其中执行所有业务逻辑。我们的服务层只是到我们域的一个通道,以防我们将来需要将任何服务发布到 ESB。
您所做的最大好处是不会像很多人那样弄乱控制器中的所有业务和数据库逻辑。如果您确实想遵循 MVC,那么您总是希望控制器尽可能轻。
归档时间: |
|
查看次数: |
1574 次 |
最近记录: |