2016-11-24 64 views
1

我是實體框架遷移的新手。我知道使用下面的鏈接能夠自動遷移的基礎知識:C#實體框架如何在生產中啓用自動遷移

http://www.entityframeworktutorial.net/code-first/automated-migration-in-code-first.aspx

誰能告訴什麼是使生產自動遷移,沒有任何麻煩的最好辦法,以及如何做自動遷移在場景中的連接字符串在運行時提供?

謝謝

+1

我會強烈建議在生產中不使用自動遷移。如果您想完全控制數據模型的演變方式,最好在需要時創建遷移並針對生產數據庫運行它們。 –

回答

0

EF DB版本檢查將在運行時執行。如果您已在項目中啓用遷移(如您在提供的鏈接中使用MigrateDatabaseToLatestVersion),遷移將應用於第一個上下文初始化。

0

我已經爲我的生產平臺準備好了,請注意,只有當構建完成於其他調試模式時,纔會執行該命令。

#if !DEBUG 
     Database.SetInitializer(new MigrateDatabaseToLatestVersion<VerbekeContext, Default.Migrations.Configuration>()); 
#endif 

這在我啓動功能的MVC項目的Global.asax的加入,所以如果你有任何其他應用程序,你應該在執行該@啓動

或者你可以設置AutomaticMigrationsEnabled爲真migrations文件夾中的configuration.cs。如果添加調試開關,請在調試時將其設置爲false,在其他構建模式下將其設置爲true。

namespace Default.Migrations 
{ 
using System.Data.Entity.Migrations; 

public sealed class Configuration : DbMigrationsConfiguration<Context> 
{ 
    public Configuration() 
    { 
     AutomaticMigrationsEnabled = false; 
    } 

    protected override void Seed(Context context) 
    { 
     /// 
    } 
} 
}