Entity Framework是否会删除它没有创建的表格?

时间:2016-11-16 23:38:39

标签: c# entity-framework

我有一个现有的数据库。它具有手动创建的表(在SQL中,而不是EF)。出于原因,我必须添加EF Code First Migrations。

当Update-Database在尚未应用其迁移的环境上运行时,我希望EF创建表,但我不希望它删除整个数据库。这是它会做什么,如果是这样我怎么能阻止它?

在我的数据库环境中,我不确定是否使用

//Disable initializer
Database.SetInitializer<ApplicationDbContext>(null);

或使用

Database.SetInitializer<ApplicationDbContext>(new CreateDatabaseIfNotExists<ApplicationDbContext>());

根据文档,如果EF表不存在,CreateDatabaseIfNotExists实际上仍然会丢弃数据库。

但是,如果我只是禁用初始化程序,那么我认为这意味着它甚至不会创建EF表。这些解决方案似乎都不好。

1 个答案:

答案 0 :(得分:2)

如果数据库中有一些手动创建的表,则可以使用以下命令启用迁移:

PM>Enable-Migrations
PM>AddMigration [A_Name_For_Your_Migration] -IgnoreChanges
PM>Update-Databases