0

如果我有两种不同的方法——一种删除用户,另一种删除用户的地址(为了论证,我们假设它们必须被删除并且不能设置为非活动状态)。如果每个方法都创建该类型的存储库以删除记录,那么在第一个方法中创建 ObjectContext 然后将其传递给另一个方法是否被认为是一种好习惯?如果是这样,它应该通过值传递还是引用传递?这样做会产生什么问题或问题?

4

1 回答 1

2

是的,这是一种有效的方法。共享一个上下文以作用于多个存储库以完成特定用例的模式称为工作单元模式。

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx

http://joel.net/repository-and-unit-of-work-for-entity-framework-ef4-for-unit-testing

请注意,如果您需要事务完整性,则必须共享上下文。如果您使用单独的上下文,并且您的第二次删除失败,您将无法回滚第一次删除。

于 2012-10-04T17:33:28.450 回答