VS 2015 ASP.NET Web API (EF6) 和 Xamarin 启用迁移失败

2024-03-17

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

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

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>**

正如您所看到的,我尝试显式指定启动项目,但看起来启用迁移命令对此不太满意。

这是我刚刚创建的一个使用完整 .NET 的项目(我绑定到 EF Core 尚不支持的 TPT/TPH 模型),因此 EF 版本是 6.1.3,针对 .NET 4.6.1。

我使用的是 VS Community 2015 Update 3 版本 14.0.25431.01。

Update

无法重现,但即使添加虚拟启动项目也会出现此问题。
交叉发布问题here https://github.com/aspnet/EntityFramework6/issues/317,请投票并分享您的实验。


看来是在抱怨Using StartUp project 'MyProject.App'但您已经指定了启动项目名称-StartupProjectName MyProject.App

你可以只尝试:

Enable-Migrations -enableautomaticmigrations -ContextTypeName MyProject.Models.ApplicationDbContext -ProjectName MyProject -StartupProjectName MyProject.App -Verbose

确保在启动项目配置文件中具有有效的连接字符串(除非您在 DbContext 构造函数中指定连接字符串名称,否则您的连接字符串应称为 ApplicationDbContext,就像您的 DbContext 一样,如果我没记错的话)


UPDATE我低估了这个问题。看来这可能不是您指定启动项目的方式,而是启动项目本身。我建议看看这个答案 https://stackoverflow.com/a/38437958/352826。请特别注意,正如我之前所说,连接字符串存在于启动项目中的 web 或 app.config 中,并且具有正确的名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS 2015 ASP.NET Web API (EF6) 和 Xamarin 启用迁移失败 的相关文章

随机推荐

  • 如何在 Perl 中将输入文件转换为 UTF-8 编码?

    我已经知道如何使用如下代码将文件的非 utf8 编码内容逐行转换为 UTF 8 编码 outfile txt is in GB 2312 encode open my filter lt c outfile txt while lt fil
  • Angular 2 材料垫选择以编程方式打开/关闭

    有谁知道如何以编程方式打开或关闭垫选择 就 api 而言 有打开和关闭的方法 但不知道如何从组件调用这些方法 并且现场没有任何示例显示这一点 Thanks 为了访问这些属性 您需要识别 DOM 元素并使用ViewChild 组件 html
  • 迭代嵌套列表、元组和字典

    我还有一个关于主题的问题迭代嵌套列表和字典 https stackoverflow com questions 11501090 iterate over nested lists and dictionaries 我需要一些针对上面链接主
  • 如何使用 ImageMagick 防止图像炸弹?

    我目前在 PHP 上使用 Imagick 库 并使用 Image Magick 的调整大小功能 我刚刚了解了减压炸弹以及 ImageMagick 如何容易受到它的攻击 我已经检查了如何 ping 图像并验证图像的尺寸 而无需实际将其加载到内
  • 最小长度子集的高效幂集算法

    我正在使用以下 C 函数来获取仅限于最小长度子集的幂集 string PowerSet int min len string set IEnumerable
  • 正在从 CakePHP URL 中删除 ID?

    大家好 正在开发一个新的 Cake 应用程序 想知道是否有办法从 Cake 中删除 ID in URL 路由 也许通过某种方式在 POST 中传递 ID 将 ID 作为 URL 参数传入似乎非常粗制滥造且不安全 谢谢 劣质 在 URL 中包
  • 根据用户组限制 S3 资源

    我有一个网络应用程序 用户 通过 Cognito 使用 ID 令牌 JWT 登录 可以从 S3 上传 下载文件 用户应仅访问与其组织相关的 S3 资源 为此 我正在考虑按组织分离 S3 路径 arn aws s3 my bucket org
  • 如何使 Kotlin“内部”​​对象可供测试访问?

    我的项目使用多个 Gradle 源集作为其生产代码库 而不仅仅是main domain dal rest test dbUnitTest 事实证明 这对于限制依赖性和强制关注点分离非常有用 然而它有一个缺点 我们无法使用以下方式访问类或方法
  • Firebug 的“网络”选项卡没有显示任何内容?

    我通常运行 Fiddler 来监控网络流量 现在使用 Mac 机器 我认为Firebug的net选项卡可以显示通过AJAX获取的流量 net选项卡已启用 但是 如果我尝试 google com 并输入一些内容 它的 google sugge
  • 根据屏幕宽度更改 JavaScript 中的 a 标签属性

    我试图使用媒体查询更改 a 标签的属性 但我发现带有超链接的媒体纯粹是建议性的 因此 替代方法是使用 JavaScript 但我似乎无法让 screen width 正常工作 JavaScript function adjustHeight
  • Sum(Case when) 导致选择的多行

    我有一张巨大的客户订单表 我想运行一个查询来按 user id 按月列出过去 13 个月的订单 我现在所拥有的 如下 可以工作 但不是只为每个 user id 列出一行 而是为 user id 的每个订单列出一行 例如 一个用户一生中总共有
  • 如何重启Android模拟器并保留系统数据

    Android模拟器关机时是否可以保留系统数据 不是SD卡数据 我的具体问题是我正在尝试将新的根证书导入 system etc security cacerts bks文件 但这需要重新启动 当我重新启动模拟器时 文件将恢复到原始状态 该文
  • 如何解决Java错误“pool-1-thread-xxxx”java.lang.OutOfMemory

    我搜索了有关此问题的帖子 但没有看到像我这样的情况 我的 java 控制台显示错误消息 pool 1 thread xxxx java lang OutOfMemory如下图 红线 CPU 使用率 绿线 内存使用情况 我增加了内存6G to
  • 如何在access中搜索2个日期和时间?

    我的访问字段中有MyDate and myTime 我的日期格式 16 09 2010 00 00 00 我的时间格式 16 09 2010 04 27 00 我需要在之间搜索date 01 01 2010 and time 12 50 0
  • 自定义命名空间事件将不起作用

    我正在尝试让自定义命名空间事件按此处所述工作 http docs jquery com Namespaced Events http docs jquery com Namespaced Events 但我一定错过了一些东西 因为除非命名空
  • UISlider 在 iOS7 中没有动画

    当我从 iOS 6 切换到 iOS 7 设计时 我注意到使用该方法setValue animated 不再为滑动过程设置动画 有其他人遇到过这个问题并找到解决方案吗 我将添加一些代码来表明我没有做任何复杂的事情 Variable decla
  • C++ 代码中“&”运算符的意义

    我看到一些这样的代码 void testCase2 int variant if variant 0x1 return 什么是 if语句中的运算符意思是 为什么要使用 是按位与运算符 给定两个整数操作数 它对每个位位置执行 AND 运算 即
  • 让 WAMP 在 Windows 启动时自动启动(无需登录或任何 UAC 干扰)

    我希望在打开计算机时启动 WAMP 理想情况下 它甚至无需用户登录即可启动 我已将 WAMP 添加到注册表中的启动项中 但用户需要登录 而 UAC 仍在发挥其烦人的作用 有没有一种方法可以在不登录或UAC干扰的情况下完成此任务 Thanks
  • 如何在iphone sdk中制作跑分动画

    我希望在 xcode 中为我的 iPhone 应用程序做一个运行分数动画 这样每当我将分数增加一个整数 ScoreAdded 时 分数就会运行到新分数 而不是更新到新分数 我尝试了一些带有 sleep 的 for 循环 但没有可用 所以我想
  • VS 2015 ASP.NET Web API (EF6) 和 Xamarin 启用迁移失败

    我正在开发一个项目 该项目将使用 ASP NET Web API 作为数据服务 并使用 Xamarin 便携式应用程序作为客户端 我尝试在 Web 应用程序中启用迁移 但收到以下错误 Enable Migrations enableauto