2013-05-14 59 views
8

我建立具有下列項目的解決方案沒有上下文:
發佈實體框架代碼優先遷移,在啓動項目

  • Main.Data - 類庫項目
  • Main.API - Asp.NET MVC的WebAPI - 引用Main.Data
  • Main - 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類,在那之後我的發佈配置文件自動檢測到實體框架代碼優先。 (?抑或是)
也就是說,是的,當然,不是一個解決辦法

這裏有一些相關的主題:

  • This是基礎學習教程。
  • This解釋了部署選項,但沒有進行故障排除。
  • This實際上給出了一些想法嘗試,但都似乎不自然。

我正在尋找一個乾淨穩定的解決方案。我是否必須將我的Context類放入主項目中?

在此先感謝

+0

您是否記得將app/web.config添加到您的主項目中?當您啓用遷移時,它將配置文件添加到Main.Data項目。當您參考項目時不會添加這些內容。我在單獨的項目中有我的上下文,但配置文件應該在我使用它們的項目中? – 2013-05-14 17:49:56

+0

是的,web.config位於主項目上,配置文件位於Main.Data上...您是否設法將主項目部署到Azure? – Liel 2013-05-14 20:53:39

+0

我的設置不完全相同。我在視覺工作室和本地做所有的遷移工作。當我部署時,我的數據庫是最新的,只是工作。沒有嘗試過自動遷移 – 2013-05-14 23:01:49

回答

9

我現在可以啓用Execute Code First Migrations當我創建一個發佈配置文件。
這裏是我做過什麼來實現它:

  1. 裏面Main/Web.config我改變了連接字符串的名稱上下文類的FQN:Main.Data.MyContext
  2. Main項目的參考添加到Main.Data項目(直到現在還不需要)。

這是爲我做的工作。
如果有人獲得更好或更有教育意義的答案,我很樂意聽到它。

+1

Main.Data.MyContext將是[完全限定名稱](http://msdn.microsoft.com/en-us/library/dfb3cx8s%28v=vs.71%29.aspx),它是不同於「完整路徑」(這將類似於文件系統路徑)。 – 2013-05-17 17:54:24

+0

爲了使用我現有的發佈配置文件(.pubxml),我必須進入它們並手動更新''。可能重新創建它們也會起作用。謝謝! – 2013-05-17 18:09:23

+0

這對我來說不起作用:(。@Liel你做了其他什麼來使它工作? – Zero3 2017-09-05 14:28:11

相關問題