2016-11-16 40 views
0

我有一個現有的數據庫。它具有手動創建的表(在SQL中,而不是在EF中)。出於某些原因,我必須添加EF Code First Migrations。實體框架將刪除它沒有創建的表嗎?

當更新數據庫在尚未應用遷移的環境上運行時,我希望EF創建表,但我不希望它刪除整個數據庫。那是它會做什麼的,如果是這樣,我該如何阻止它?

在我的數據庫上下文我不知道是否使用

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

或使用

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

根據它看起來像CreateDatabaseIfNotExists實際上猶若EF刪除數據庫文件表格不存在。

但是,如果我只是禁用初始化程序,那麼我認爲這意味着它甚至不會創建EF表。這些解決方案看起來都不錯。

回答

2

如果你在你的數據庫的一些表,即手動創建的,你能使用以下命令遷移:

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

我沒有指定數據庫初始化策略,然後確實如你所說,和它的工作。謝謝。 – levininja