MVC6 (beta-7)
項目中有兩個EF7
數據庫上下文。其中第一個(我們稱之爲StartupContext
)在啓動項目(MyProject.Startup
)中。第二個(我們稱之爲DataContext
)位於單獨的程序集(MyProject.Data
)中。如何設置啓動項目以更新發布的ASP.NET5中的數據庫| MVC6項目?
有一個在MyProject.Startup
的project.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
,但沒有成功。
有沒有其他人有類似的問題?
如何更新數據庫並從發佈的項目創建遷移?
確保您的目標框架是正確的(例如'clr'而不是'coreclr') –
@LeonardoHerrera我確定,我使用Clr框架在我所有的項目中。 – hcp
'dnvm list'告訴你什麼?那裏選擇了正確的版本?我發現(爲了發佈到Azure),我必須排好一切。 –