entity framework - with - 啟用遷移安裝錯誤




mvc 5 entity framework code first sample (3)

事實證明,當你使用代碼第一次遷移,你必須指定一個啟動項目在VS引用你的遷移在其他地方定義的項目,將無法加載項目。

(如果您在Visual Studio中使用Code First Migrations,那麼如果解決方案的startUp項目沒有引用包含您的遷移的項目,則可能會發生這種情況,您可以更改解決方案的startUp項目或使用-StartUpProjectName參數。

在啟用我的一個項目的遷移時遇到問題。 我從Nuget控制台執行Enable-Migrations命令,並收到一個錯誤消息:

Exception calling "SetData" with "2" argument(s): "Type 
'Microsoft.VisualStudio.TeamArchitect.ModelingProject.ModelProjectAutomationObject' in assembly 
'Microsoft.VisualStudio.TeamArchitect.ModelingProject, Version=11.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable."
At D:\Solution\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:391 char:5
+     $domain.SetData('startUpProject', $startUpProject)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SerializationException

在這之前有沒有人遇到過這個問題,可以指出我的方向。

環境:
.NET 4.5
實體框架5
Visual Studio 2012更新2


嘗試指定內容類型名稱:

Enable-Migrations -ContextTypeName Web.Infrastructure.ContextName

如果解決方案中有多個項目,則必須指定要應用哪個項目。 (在控制台的頂部下拉“DefaultProject”)。


發現問題了!
問題是我的解決方案中的啟動項目是一個建模項目。 由於某些原因,在我的項目上啟用遷移時,模塊會查看與啟動項目相關的庫。

將我的啟動項目更改為解決方案中的測試項目,並且一切正常。

UPDATE

確保您的啟動項目包含要用於連接到數據庫的app.configweb.config文件。 即使您的DbContext位於不同的項目上,這也是它將用於生成遷移的文件。 您可以將包含您的DbContext的項目設置為啟動項目。