我在我的服务中有一个方法,我创建了一些实体,在我调用我的存储库的Add方法的方法中,这样当我调用我的save方法时实体是持久化的,我应该在服务类之外还是在里面调用我的Save方法我将实体添加到datacontext的方法吗?
答案 0 :(得分:1)
服务类必须是自包含的,并且必须为它使用的存储库调用自己的save()方法。这样,它允许从其使用者中抽象存储库。如果它选择免除存储库怎么办?如果被调用者负责执行save(),那么被调用者()也必须改变。这会导致代码脆弱。
然而,交易是另一回事。
如果被调用者已经启动了服务类,则服务类必须参与全局事务。在没有全局事务的情况下,服务类必须启动和结束自己的事务。因此,save()方法实际上只在事务结束时“提交”,无论它是由服务类本身还是由被调用者启动。
答案 1 :(得分:0)
我会问,为什么你要创建一些实体?很可能唯一的原因是最终坚持下去。根据定义,您的服务类将是触发持久性过程的更好位置。数据上下文中的实体应仅关注响应来自服务的命令。