今天打開MVC項目(Code-First),打算手動更新數據庫,所以直接在"程序包管理控制台"中執行如下命:
enable-migrations -contexttypename BJYLOnlineServ.Areas.Enterprise.DAL.EnterpriseContext -MigrationsDirectory Migrations\Enterprise;
控制台直接給了我一個這樣的錯誤,我奇怪了,之前還好好的啊,怎么回事了。錯誤:
PM> enable-migrations -contexttypename BJYLOnlineServ.Areas.Enterprise.DAL.EnterpriseContext -MigrationsDirectory Migrations\Enterprise 使用“2”個參數調用“SetData”時發生異常:“程序集“Microsoft.VisualStudio.TeamArchitect.ModelingProject, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”中的類型“Microsoft.VisualStudio.TeamArchitect.ModelingProject.ModelProjectAutomationObject”未標記為可序列化。” 所在位置 D:\docuemtn-xf\03Work\onlineservice_Curr\trunk\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:720 字符: 20 + $domain.SetData <<<< ('startUpProject', $startUpProject) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException System.NullReferenceException: 未將對象引用設置到對象的實例。 在 System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetProjectTypes(Project project, Int32 shellVersion) 在 System.Data.Entity.Migrations.Extensions.ProjectExtensions.IsWebProject(Project project) 在 System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory) 在 System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName) 在 System.Data.Entity.Migrations.EnableMigrationsCommand.<>c__DisplayClass2.<.ctor>b__0() 在 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 未將對象引用設置到對象的實例。
於是啊,我就找原因啊,我找啊找,還真找到了。
原來:是因為我之前設置了另一個項目為啟動項目,而非 命令中的 BJYLOnlineServ 這個項目,所以就報出這個錯誤了。。。流漢啊。。。,以后一定要注意了啊!
所以就記下來,以方便自己查閱,也給可能碰到這種問題的大家,提供一個解決方法,呵呵!