我想使用EF代码第一次迁移来在数据库中创建我的模型。但是,我将使用的数据库已经存在并由其他应用程序共享。我的问题是:EF Code First Drop Database?
迁移擦除数据库?那将是一场灾难! 迁移是否会抹去任何东西?
我想使用EF代码第一次迁移来在数据库中创建我的模型。但是,我将使用的数据库已经存在并由其他应用程序共享。我的问题是:EF Code First Drop Database?
迁移擦除数据库?那将是一场灾难! 迁移是否会抹去任何东西?
问:迁移是否擦除数据库?
- 答:不,你可以做到这一点,而不删除它。
您必须按如下所示在包装管理器控制台上执行此操作。
步骤1:
PM > Add-Migration InitialCreate –IgnoreChanges
上述命令将创建一个空的迁移与当前模型作为快照。
第2步:
PM > Update-Database
上面的命令将应用迁移InitialCreate
到数据库。因此,实际迁移不包含任何更改,它将在__MigrationsHistory
表中添加一行,表明此迁移已应用。
您可以在这里阅读更多关于它的信息:CF Migrations with an existing database
我通常在这种情况下做的是创建到现有数据库的迁移,然后将所有内容从Up和Down方法中移除并运行更新。通过这种方式,您的代码首次迁移将与数据库中当前的最新数据保持同步,因此,通过添加第二次迁移,任何新的模式更改都将成为唯一的选择。