【问题标题】:Multiple DbContext classes for a single web app. Good or bad?单个 Web 应用程序的多个 DbContext 类。是好是坏?
【发布时间】:2012-06-17 16:16:45
【问题描述】:

为 Web 应用程序的每个主要部分设置多个 XXX : DbContext 类是否是一种好习惯(考虑到它的数据库中至少有 50 个表的大类)?例如:MembershipContext、BlogContext、StoreContext 等。或者为所有与数据库访问相关的内容设置一个 DatabaseContext 会更方便。

【问题讨论】:

    标签: entity-framework architecture coding-style repository-pattern


    【解决方案1】:

    使用多个 DbContext 类意味着使交叉事务复杂化(您可以在网络上找到此问题的解决方案,此处是示例 http://pastebin.com/YEDqyH0n),但可能是合理的。这完全取决于您的架构和您想要设计的分离。

    无论如何,您应该查看 Repository 和 UnitOfWork 模式以对如何使用 DbContexts 进行抽象层。如果您使用 ASP.NET MVC,请看这里:Multiple DbContexts in N-Tier Application 和这里 EF and repository pattern - ending up with multiple DbContexts in one controller - any issues (performance, data integrity)?

    对于 50 个表,我认为拥有多个 DbContext 可能是合理的。所以我会推荐使用多个 DbContexts。但是您应该使用 Repository 和 UnitOfWork 模式将它们包装起来,使其独立于其他层中的实际实现(这样您以后可以轻松地改变主意,例如只使用一个signle DbContext)。

    希望对你有帮助。

    【讨论】:

    • DbContext 已经实现了存储库和工作单元模式!
    猜你喜欢
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    相关资源
    最近更新 更多