實體框架6.0.2。 .Net 4.我試圖從代碼更新SQL Server CE 4.0數據庫,因此當新版本的應用程序發佈時,數據庫會自動升級。EF6 + SQL Server CE +兩個上下文+ CodeFirst從代碼遷移 - 在添加遷移後檢測掛起的更改
有在項目中的兩個數據的背景和他們的目標是兩個不同的數據庫。這是我在做什麼更新其中的一個:
Private Sub UpdateDatabase(connectionString As String)
Dim config As DbMigrationsConfiguration(Of MainDBContext) = New DbMigrationsConfiguration(Of MainDBContext)()
config.TargetDatabase = New System.Data.Entity.Infrastructure.DbConnectionInfo(connectionString, "System.Data.SqlServerCe.4.0")
config.ContextKey = "MyProject.MainDBContext"
Dim migrator As DbMigrator = New DbMigrator(config)
migrator.Update()
End Sub
從更新方法的消息是,有待定更改,所以我必須要麼運行Add-遷移或啓用自動遷移。但是,Add-Migration已經運行,當我允許自動遷移時,Update會嘗試創建已經存在於數據庫中的表。
運行UpdateDatabase當這樣調用工作正常:
Update-Database -configuration MyProject.MigrationsMainDb.Configuration -Verbose
我查了一下,在UpdateDatabase功能使用的連接字符串是一樣的一個在配置文件(UpdateDatabase使用)。我也嘗試不設置ContextKey屬性,但它沒有任何區別。
有什麼明顯的,我做錯了什麼?爲什麼遷移者認爲有未決的更新,但更新數據庫是好的......?