EF修改model自動更新數據庫


最近用MVC+EF學習時遇到修改model后而數據庫沒更新報錯,就在網上找關於數據遷移自動更新數據庫的,折騰了大半天終於弄了出來

第一步:在程序包管理器控制台里: Enable-Migrations -ProjectName EF所在的項目名稱

第二步:運行后會在字段生成Migrations文件夾,Migrations->Configuration.cs 類里把AutomaticMigrationsEnabled改為true(即設為model有改動自動更新數據庫)

    如有刪除字段則要加 AutomaticMigrationDataLossAllowed = true(可接受自動遷移期間的數據丟失的值)

第三步:在OwnDbContext里

public OwnDbContext()
            : base("DefaultConnection")
        {           
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<OwnDbContext, Own.Model.Migrations.Configuration>()); 
        }

PS:在查的一些資料中有些沒有第三步,可我的不改這個還是報錯改了才可以

或里面為 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<OwnDbContext>());

當你修改完某個model,在 package manager console 中輸入Add-Migration model名 會有對應的文件生成,

Update-Database 這個命令會把你對實體的更改 通過 migration文件對應的對數據庫進行修改

 

ps:如果實體模型改變了,也可以使用Add-Migration [遷移文件名] 命令可以生成待遷移文件,最后使用Update-Database命令提交改變。

在Global.asax的方法Application_Start()加:

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion<MvcOwn.Models.OwnDbContext, Migrations.Configuration>());


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM