【问题标题】:EF6 Enable-Migrations not working in ASP.NET Core (.NET Framework)EF6 Enable-Migrations 在 ASP.NET Core (.NET Framework) 中不起作用
【发布时间】:2017-12-06 08:55:46
【问题描述】:

我在 VS2017 中创建了一个 ASP.NET Core Web Application (.NET Framework) 项目。然后使用 NuGet,我安装了 EntityFramework 6.1.3(我不能使用 EF Core,因为它不支持 DbGeometryDbGeography)。

现在,当尝试在 包管理器控制台中运行 Enable-Migrations 命令时,它会引发空引用异常。

使用“2”参数调用“SetData”的异常:.....

System.NullReferenceException:对象引用未设置为对象的实例。

我的解决方案中只有一个项目,并且在包管理器控制台的默认项目部分中设置。我已经阅读了thisthis,但它们都不适用于我的情况。我的解决方案中也没有project.json 文件,其中一些答案似乎已过时。

这是异常消息的快照

编辑:我有这些包

【问题讨论】:

  • 当你刚刚运行你的第一个添加迁移?我似乎记得 enable 不再需要了。
  • @HenkHolterman 在运行第一次添加迁移时出现同样的错误(未启用)
  • 好吧,“它可以在我的机器上运行”......您可能在某处有一些丢失/过时/冲突的包。仔细查看 restore-packages 和 rebuild-all 的错误/输出。
  • 我有更多的 pkgs。但更重要的是,我的上下文和模型类不在 ASP.NET Core 中,而是在 Fx 4.6 项目中。
  • 您可能需要将 EF6 移动到以 .Net 4.x 为目标的单独项目中,如 here 所述

标签: c# asp.net .net entity-framework asp.net-core


【解决方案1】:

我使用命令EntityFrameworkCore\Add-Migration [your_migration_name] 让它工作。不需要enable-migrations。如果我要尝试 .NET 框架标准 add-migration [migration_name],会弹出以下警告:

Both Entity Framework 6.x and Entity Framework Core commands are installed. 
The Entity Framework 6 version is executing. You can fully qualify the command to select which one to execute, 'EntityFramework\Add-Migration' for EF6.x and 'EntityFrameworkCore\Add-Migration' for EF Core.'

接着是您在上面粘贴的相同异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 2023-03-14
    • 2017-10-12
    • 2016-10-07
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多