entity-framework - 将 Entity Framework 4.1 Code First 应用程序移至生产需要哪些更改?

标签 entity-framework ef-code-first entity-framework-4.1

正如所讨论的 in this thread , Entity Framework Code First 适用于开发环境。那么,需要对 Entity Framework 代码优先应用程序进行哪些步骤或更改才能将其转移到生产环境?

  • 将数据库迁移到生产服务器。
  • 更改 Web.config 中的连接字符串

  • 需要对 DbContext 初始化进行任何更改以防止它在生产环境中胡闹? (或者,由于迁移的数据库中的数据库架构是正确的,所以它不会出现问题吗?)还有什么可做的?

    最佳答案

    这是一篇关于代码优先方法的很棒的文章,包括底部的生产部署:http://msdn.microsoft.com/en-us/magazine/hh126815.aspx

    您可以使用诸如 Red Gate's SQL Compare 之类的工具。分析您的开发环境和目标环境之间的差异,以构建允许 DBA 执行迁移的更改脚本。

    您可能想要做的另一件事是将一个名为“AppVersion”的实体添加到您的代码优先上下文中。然后,覆盖 DropCreateDatabaseIfModelChanges IDatabaseInitializer 的 Seed() 方法,以便它写入当前应用程序版本,或者使用连续构建写入源控制修订号。

    例子:

    public class OrderDbInitializer : DropCreateDatabaseIfModelChanges<OrderContext>
    {
        protected override void Seed(OrderContext context)
        {
    
            context.AppVersion.Add(new AppVersion() {Version = Assembly.GetExecutingAssembly().GetName().Version.ToString()});
            context.SaveChanges();
        }
    
    
    }
    

    这样,您将始终知道哪个版本的代码与数据库相关联。您还可以向 Seed() 方法添加更多代码,以创建开发人员在编写应用程序时需要使用的示例数据。

    最后,您不希望在生产中使用 DropCreateDatabaseIfModelChanges 初始值设定项,因此使用 config transform或者需要使用一些工厂模式。

    希望这有助于给你一些想法。

    关于entity-framework - 将 Entity Framework 4.1 Code First 应用程序移至生产需要哪些更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5585446/

    相关文章:

    c# - 找不到连接字符串 WebSecurity.IntializeDatabaseConnection

    asp.net-mvc - Entity Framework 4 不保存我的多对多行

    .net - 输出使用 Entity Framework 4.1 Code-First 创建 SQL

    c# - EF中的跨数据库查询

    c# - EF7 .NET Core 1 RC2 添加迁移失败

    c# - 在 Entity Framework 中使用数学函数和 mysql

    c# - 使用 EF 更新 PK 时出错

    c# - ThenInclude 在 EF Core 查询中无法识别

    entity-framework-4.1 - 使用 EF 4.1/DbContext 根据环境切换连接字符串

    entity-framework - 如何从独立应用程序创建/使用 Lightswitch 域模型 (EF)?