工作单元和多个对象上下文

时间:2011-04-21 15:16:29

标签: entity-framework repository-pattern unit-of-work

我对使用多个对象上下文的工作单元和存储库实现有疑问。我的应用使用3个数据库中的数据。这意味着我有三个对象上下文,每个上下文代表一个数据库。我需要从一个数据库获取数据,但必须通过从其他2个数据库中读取过滤条件来过滤数据。我将这三个对象上下文传递给unitofwork构造函数,以便我可以访问我的存储库中的另外两个对象上下文。我在互联网上搜索了很多,但找不到任何好的答案。如果我做得对,或者是否有处理这种情况的标准方法,请你建议。

谢谢, 阿贾伊。

1 个答案:

答案 0 :(得分:4)

在工作单元中保留所有三个上下文是可行的,但是一旦您需要在单个工作单元/逻辑中修改多个数据库中的数据,这种实现的真正含义可能会有意义交易。在您需要同时将数据提交到多个上下文之前,您的实现更像是Context factory然后是工作单元。但这只是关于命名您的实现。实施的意义很好。

我不同意的是,一个存储库正在从其他上下文中读取过滤器。存储库应该只处理自己的数据/ aggregate roots。调用者(业务服务)负责从其他上下文/存储库获取过滤器,并将过滤器传递给获取数据所需的主存储库。