Entity framework 如何在远程目标上初始化EF代码首次迁移

Entity framework 如何在远程目标上初始化EF代码首次迁移,entity-framework,entity-framework-4.1,ef-code-first,entity-framework-migrations,Entity Framework,Entity Framework 4.1,Ef Code First,Entity Framework Migrations,我想在我的项目中引入代码优先迁移,但我不确定如何将其部署到我的客户机进行测试。到目前为止,事情非常简单,我只使用了CreateDatabaseIfNotExists初始值设定项。现在,我有两个场景: 他在迁移之前删除现有的数据库,并使用初始值设定项创建一个新的带有迁移的数据库,从现在开始我们使用迁移来升级他的数据库。如果缺少数据库,我可以使用MigrateDatabaseToLatestVersion初始值设定项来创建数据库吗 我只是部署代码,让它执行迁移。我不太确定这里是否需要使用Migrat

我想在我的项目中引入代码优先迁移,但我不确定如何将其部署到我的客户机进行测试。到目前为止,事情非常简单,我只使用了
CreateDatabaseIfNotExists
初始值设定项。现在,我有两个场景:

  • 他在迁移之前删除现有的数据库,并使用初始值设定项创建一个新的带有迁移的数据库,从现在开始我们使用迁移来升级他的数据库。如果缺少数据库,我可以使用
    MigrateDatabaseToLatestVersion
    初始值设定项来创建数据库吗

  • 我只是部署代码,让它执行迁移。我不太确定这里是否需要使用
    MigrateDatabaseToLatestVersion
    。这会将迁移前数据库升级到适合迁移的数据库吗


  • 这就是我在需要自动迁移时所做的;我希望这能帮助您找到解决方案:

    Database.SetInitializer(
        new MigrateDatabaseToLatestVersion<ContextFileName, PathToMigrationsConfig>()
        );
    Database.Initialize(false);
    
    在配置文件中,您应该具有seed方法的重写,如果没有,您可以添加它并填充seed数据

    只要不发生数据丢失,上述操作将创建/升级数据库至最新版本。这应该允许您将代码交给客户机


    另一方面,对于生产系统,我通常会争论不这样做的意义。这有许多缺点。对于我无法控制的数据库,我尚未找到拒绝生成脚本文件的客户端

    在通过Package Manager控制台添加迁移后,可以使用以下命令实现此目的:

    Update-database –script -verbose
    
    Update-database –script -verbose