2015-10-13 34 views
1

MVC6 (beta-7)項目中有兩個EF7數據庫上下文。其中第一個(我們稱之爲StartupContext)在啓動項目(MyProject.Startup)中。第二個(我們稱之爲DataContext)位於單獨的程序集(MyProject.Data)中。如何設置啓動項目以更新發布的ASP.NET5中的數據庫| MVC6項目?

有一個在MyProject.Startupproject.json文件和命令MyProject.Data

"dependencies": { 
    "EntityFramework.SqlServer": "7.0.0-beta7", 
    "EntityFramework.Commands": "7.0.0-beta7", 
    ... 
} 

"commands": { 
    "ef": "EntityFramework.Commands" 
    ... 
} 

我可以用它的數據庫更新這樣的:

  • StartupContext的更新我從啓動文件夾運行ef命令:

    dnx ef database update

  • DataContext的更新我從MyProject.Data項目的文件夾中運行ef命令:

    dnx ef database update -c DataContext -s MyProject.Startup

它完美而只能從源(來自未公佈的項目) 。我得到這樣的異常的DataContext從已發佈的項目的更新:

System.IO.FileNotFoundException:未能加載文件或程序集「MyProject.Data」或它的一個依賴。

我嘗試過各種方法:

dnx ef database update -c DataContext -s MyProject.Startup 
dnx ef database update -c DataContext -s C:\Published\approot\packages\MyProject.Startup 
dnx ef database update -c DataContext -s C:\Published\approot\packages\MyProject.Startup\1.0.0\root\ 
dnx ef database update -c DataContext -s C:\Published\approot\packages\MyProject.Startup\1.0.0\lib\MyProject.Startup.dll 
dnx ef database update -c DataContext -s %~dp0approot\packages\MyProject.Startup 
dnx ef database update -c DataContext -s %~dp0approot\packages\MyProject.Startup\1.0.0\root\ 

我也試圖在MyProject.Startup.dll複製到文件夾與MyProject.Data,但沒有成功。

有沒有其他人有類似的問題?

如何更新數據庫並從發佈的項目創建遷移?

+0

確保您的目標框架是正確的(例如'clr'而不是'coreclr') –

+0

@LeonardoHerrera我確定,我使用Clr框架在我所有的項目中。 – hcp

+0

'dnvm list'告訴你什麼?那裏選擇了正確的版本?我發現(爲了發佈到Azure),我必須排好一切。 –

回答

1

這是EF7-beta7中的一個錯誤,應該在EF即將發佈的RC1版本中修復。

如果您需要需要(如同非常多)此功能之前,您可以使用EF的每晚構建。 (注意:每晚構建有很多不穩定性。)

相關問題