首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VS 2015 ASP.NET Web API (EF6)和Xamarin Enable-迁移失败

VS 2015 ASP.NET Web API (EF6)和Xamarin Enable-迁移失败
EN

Stack Overflow用户
提问于 2017-02-10 10:33:08
回答 1查看 647关注 0票数 18

我正在开发一个项目,它将使用Xamarin Web API作为数据服务,并使用ASP.NET便携应用程序作为客户端。

我正在尝试在web应用程序中启用迁移,但收到以下错误:

代码语言:javascript
复制
Enable-Migrations -enableautomaticmigrations -ContextTypeName MyProject.Models.ApplicationDbContext -ProjectName MyProject -StartupProjectName MyProject.App -Verbose
Using StartUp project 'MyProject.App'.
Exception calling "SetData" with "2" argument(s): "Type 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' in assembly 
'Microsoft.VisualStudio.ProjectSystem.VS.Implementation, Version=14.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable."
At C:\Users\weitz\.nuget\packages\EntityFramework\6.1.3\tools\EntityFramework.psm1:718 char:5
+     $domain.SetData('project', $project)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SerializationException
 
Exception calling "SetData" with "2" argument(s): "Type 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' in assembly 
'Microsoft.VisualStudio.ProjectSystem.VS.Implementation, Version=14.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable."
At C:\Users\weitz\.nuget\packages\EntityFramework\6.1.3\tools\EntityFramework.psm1:719 char:5
+     $domain.SetData('contextProject', $contextProject)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SerializationException
 
System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue[T](Project project, String propertyName)
   at System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName, Boolean useContextWorkingDirectory)
   at System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName)
   at System.Data.Entity.Migrations.EnableMigrationsCommand.<>c__DisplayClass2.<.ctor>b__0()
   at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Object reference not set to an instance of an object.
**PM>**

正如您所看到的,我已经尝试显式地指定了启动项目,但看起来enable-migrations命令对此并不满意。

这是我刚刚创建的一个项目,它使用了完整的.NET (我绑定到EF Core还不支持的TPT/TPH模型),所以EF版本是6.1.3,目标是.NET 4.6.1。

我正在使用VS社区2015更新3版本14.0.25431.01。

更新

无法重现,但即使在添加虚拟启动项目时也会出现此问题。

交叉发布的问题here,请投票并分享你的实验。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-16 21:54:18

根据this (已测试并正常工作)的说法,在aspnetcore+ef6项目中启用迁移的唯一方法是将DbContext添加到外部完整的.NET类库中,外加添加一个虚拟启动项目。

虽然很烂,但很管用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42150540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档