我建立具有下列項目的解決方案沒有上下文:
發佈實體框架代碼優先遷移,在啓動項目
Main.Data
- 類庫項目Main.API
- Asp.NET MVC的WebAPI - 引用Main.DataMain
- Asp.NET MVC 4個Web應用程序 - 引用Main.API
我有MyContext : DbContext
類位於Main.Data
項目內。 我也成功地在Main.Data
項目上發出了enable-migrations
控制檯命令,並且我成功地將LocalDB用作我的數據和upgrade-database
遷移的SQL服務器。
當我嘗試將Main
項目發佈到Windows Azure網站時,問題就開始了。
使用Import from a Windows Azure web site
自動創建的發佈配置文件似乎沒有認識到我正在使用實體框架代碼優先解決方案,因此我無法啓用Execute Code First Migrations
,因爲我願意。
相反,我只能啓用Update database
腳本。
我使用Visual Studio 2012與實體框架5.0.0(自項目開始以來)。
只是爲了驗證,我試圖在Main
項目添加Main
項目中,並enable-migrations
臨時MyContext
類,在那之後我的發佈配置文件自動檢測到實體框架代碼優先。 (?抑或是)
也就是說,是的,當然,不是一個解決辦法
這裏有一些相關的主題:
我正在尋找一個乾淨穩定的解決方案。我是否必須將我的Context類放入主項目中?
在此先感謝
您是否記得將app/web.config添加到您的主項目中?當您啓用遷移時,它將配置文件添加到Main.Data項目。當您參考項目時不會添加這些內容。我在單獨的項目中有我的上下文,但配置文件應該在我使用它們的項目中? – 2013-05-14 17:49:56
是的,web.config位於主項目上,配置文件位於Main.Data上...您是否設法將主項目部署到Azure? – Liel 2013-05-14 20:53:39
我的設置不完全相同。我在視覺工作室和本地做所有的遷移工作。當我部署時,我的數據庫是最新的,只是工作。沒有嘗試過自動遷移 – 2013-05-14 23:01:49