2013-03-15 69 views
0

前言:在我的數據庫表中,我有兩個字段:(字符串)(FK)UserPayoffData_UserName和(int)UserPayoffDataUserName。我犯了一個錯誤,實際上,我希望它只是單一的財產,(字符串)(FK)UserPayoffData_UserName,但被稱爲(字符串)(FK)UserPayoffDataUserName,和我的第二個字段((int)UserPayoffDataUserName)將會消失。EF Code First Migrations - 未檢測到更改

現在,在我的模型,我有這個無效的屬性:

public int UserPayoffDataUserName { get; set; }

所以我把它改成一個字符串(現在如果我將放棄我的數據庫並重新創建它,這將是一個外鍵):

public string UserPayoffDataUserName { get; set; }

現在我做Add-migration mymigration,而我所期望的是,移民會以某種方式重命名上面正確命名的一個外鍵。但它沒有做任何事情。有什麼我可以做的嗎?

+0

難道不是建立某種形式的遷移?它是空的嗎?請張貼它。 – 2013-03-15 03:55:47

回答

0

如果我明白這一點,您需要刪除mymigration或您從您那裏獲得的任何其他舊遷移項目。他們應該在你的Migration folder。如果你需要你的遷移,你將不得不創建新的遷移。然後根據需要更改您的課程,如屬性命名和所有屬性映射。然後構建您的解決方案,並運行Update-Database -Force

記住,因爲你是用EF Code First工作,你可以刪除數據庫,從Server Explorer和你App_Data文件夾(不要錯過這個,從服務器資源管理器中刪除意味着什麼,如果你不這樣做,在這裏)和其沒有什麼大不了的,因爲它可以在瞬間創建`Update-Database -Verbose

0

通過執行Add-Migration mymigration您只需創建腳手架代碼文件,該腳本文件將在您執行遷移時使用。

所以你的數據庫不會自動改變。你必須發起它!

通過使用update-database -TargetMigration mymigration,這將執行所有的變化,你做,並保存到文件mymigration