【问题标题】:Entity Framework 4.3 merge multiple databases/contextEntity Framework 4.3 合并多个数据库/上下文
【发布时间】:2012-03-14 03:07:34
【问题描述】:

我们使用的是 Entity Framework 4.3 Code First。我们有三个数据库。对于每个数据库,我们都有一个 DbContext。在第一个数据库中,我们有一些遗留表/sql。总体而言,大约有。 70-80 个表/实体。

将来我们希望使用 EF 4.3 迁移。

  • 我们能否将所有三个数据库合并为一个并保留我们的三个 DbContext 类?
  • 合并 DbContext 类会更好吗?
  • EF 4.3 可以处理这个问题吗?

【问题讨论】:

    标签: c# .net entity-framework-4 code-first entity-framework-migrations


    【解决方案1】:

    如果您想使用 3 种上下文类型,您仍应使用 3 个数据库。数据库迁移依赖于上下文类型,三种上下文类型的迁移不适用于单个数据库(否​​则会导致很多麻烦,包括完全手动处理迁移代码)。作为替代方案,您可以将所有数据库合并到单个数据库,您还必须将上下文类型合并到单个数据库。选择权在你。

    【讨论】:

    • 我可以为迁移添加第四个上下文吗?一个“超级”上下文,其中包含用于迁移的所有表/DbSet,三个上下文用于访问应用程序中的数据。
    • 它应该可以工作,但在这种情况下,没有理由拥有额外的三个上下文。维护主要上下文和其他上下文只会更容易出错。
    • 感谢您的回答。 70-80(或更多)实体/表是否存在任何性能问题?因此我想保留三个上下文类。
    • 唯一的性能影响是上下文的第一次初始化。另一个问题主要在设计中。拥有 80 个属性的类看起来不是一个好的设计,但如果你想使用迁移,你可能没有其他选择,除非你想深入研究迁移 API 并尝试查找是否有一些扩展点来实现对多个的支持一个数据库中的上下文。
    猜你喜欢
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多