如果我有两个不同的方法 - 一个删除用户而另一个删除用户的地址(为了参数,我们假设它们必须被删除而不能设置为非活动状态)。如果每个方法都创建了该类型的存储库以删除记录,那么在第一个方法中创建一个ObjectContext并将其传递给另一个方法是否被认为是一种好习惯?如果是这样,它应该通过值传递还是引用?这样做会产生什么问题或问题?
答案 0 :(得分:2)
是的,这是一种有效的方法。共享一个上下文以在多个存储库上执行以完成特定用例的模式称为工作单元模式。
http://joel.net/repository-and-unit-of-work-for-entity-framework-ef4-for-unit-testing
请注意,如果您需要事务完整性,必须共享上下文。如果您使用了单独的上下文,并且第二次删除失败,则无法回滚第一次删除。