【问题标题】:Unit of work and multiple object contexts工作单元和多对象上下文
【发布时间】:2011-04-21 15:16:29
【问题描述】:

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

谢谢, 阿杰。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这对我来说绝对是有意义的。谢谢你的回答。
    • 喜欢这个答案。几年后,我想知道您是否可以提供一些关于如何使用 UoW 处理多个 DbContext 的教程?有指南吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多