我有以下对象:
人< - 联系 - > ClientsPerson< - Client
我正在使用带有服务层的存储库模式。但是在这里,作为一个完美主义者,我迷失了!
我还有一个PersonService,ClientService,我很确定我需要一个应该调用personService.Add(person)和clientsPersonService.Add(client)的ContactService - 或者?
工作是添加联系人。该联系人将具有相关的Person对象和ClientsPerson对象。那个ClientsPerson会的。有一个客户。
不同的工作应该去哪里?我听说将服务/存储库从一个调用到另一个是不好的。
答案 0 :(得分:0)
这个答案取决于你的ORM以及它如何保存。我们假设您没有使用级联更改的ORM。
您的服务层方法应该反映您需要从商业意义上完成的操作。经常我发现我的控制器操作与服务方法非常接近。
在你的例子中,我将建立服务并与必要的实体相关联并与repos交谈以保存它们;这样,如果在与回购交谈的过程中出现问题,它可以回滚并做任何必要的清理工作。
回购应该相对愚蠢。服务应该做关系和业务工作(除非像NHib,甚至可能那样)。