2013-04-24 35 views
1

我有實體框架代碼第一種方法的ASP.NET MVC4應用程序。我已經將我的DbContext繼承者最近移動到單獨的Model項目中(我已將連接字符串從web.config複製到app.config)。如何在ASP MVC應用程序中啓用代碼優先遷移?

現在,當我試圖運行我的應用程序時,我有錯誤,我的數據庫應該直接通過Code First或Migrations創建。第一種方式不適合我,因爲我有遠程數據庫服務器(我通過主機的控制面板創建了它)。

但是當我試圖啓用遷移時,我得到的錯誤是No context type was found in the assembly 'MyProject'。這顯然是因爲我的DbContext繼承者沒有放在啓動項目中。

那麼我該如何指示在單獨的項目中查看上下文類?


順便說一句,我有DropCreateDatabaseIfModelChanges<>初始值爲我的DbContext繼承者。

回答

2

在程序包管理器控制檯中,如果運行Get-Help Enable-Migrations,它會顯示所有高級選項。包括在那些有:

  • -ProjectName(該項目在其上運行此命令,即尋找上下文類型)
  • -StartupProjectName(具有的app.config/web.config中的項目中,上下文運行,即你的連接字符串居住的地方)。 除非您的Model項目在其自己的.config文件中有正確的連接字符串,否則這一點很重要。當你使用Add-Migration它應該支持相同的選項

  • -ConnectionString(而腳手架遷移,如果你想覆蓋值連接字符串使用)。

    默認情況下,您還可以更改軟件包管理器控制檯的默認項目下拉列表以針對您的模型項目運行。

  • 2

    如果您使用包管理器控制檯,您可以選擇一個默認項目,其中實體框架將搜索您的DbContextenter image description here

    +0

    確實。這是[this]的副本(http://stackoverflow.com/questions/9527366/cannot-enable-migrations-for-ef-4-3-in-class-library/9527372#9527372) – dcardozo 2013-04-24 16:38:11

    +0

    哇!很簡單!謝謝! – 2013-04-25 08:04:44

    相關問題