【问题标题】:"the term 'add-migration' is not recognized as the name of a cmdlet" visual studio 2019“'add-migration' 一词未被识别为 cmdlet 的名称”Visual Studio 2019
【发布时间】:2020-11-04 05:46:22
【问题描述】:

enter image description here

我正在尝试使用实体框架工作核心并打开一个新的 asp.net 核心项目。当我尝试通过 nuget 包管理器安装 Microsoft.EntityFrameworkCore.SqlServer 时,出现以下错误。

包 Microsoft.EntityFrameworkCore.SqlServer 3.0.0 与 net461 (.NETFramework,Version=v4.6.1) 不兼容。包 Microsoft.EntityFrameworkCore.SqlServer 3.0.0 支持:netstandard2.1 (.NETStandard,Version=v2.1)

当我点击它时,我会被发送到 .csproj 文件。

在该文件中,我将目标框架从 <TargetFramework>net461</TargetFramework><TargetFramework>netstandard2.1 </TargetFramework> 正如错误所暗示的那样。

这样做可以消除错误,但是当我在包管理器控制台中使用命令“add-migration”时出现此错误。

“'add-migration' 一词未被识别为 cmdlet 的名称”

我不确定接下来要做什么。请帮忙。我希望我已经清楚地解释了这个问题。

删除 project.assets 文件或更新 nuget 包管理器并使用命令“enable-migrations”也不起作用。

enter image description here

【问题讨论】:

  • 请确保您使用的是最新的 VS2019。 .net 3.0 的默认目标框架应该是 netcoreapp3.0。我认为您选择了错误的模板。检查:docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/… - 你必须安装 dotnet ef,因为它不再是 SDK 的一部分
  • 我试图在帖子中嵌入一张图片来说明我做了什么。我在模板部分选择了 .Net core 和 ASP.NET CORE 3.0,我能够轻松安装 Microsoft.EntityFrameworkCore.SqlServer。谢谢康拉德!非常感谢。
  • 现在使用的命令是 dotnet ef migrations。但是,当我这样做并为迁移命名时,它会显示“未找到项目。更改当前工作目录或使用 --project 选项。”即使它在下拉菜单中指向我的项目。
  • 打开命令行,将目录切换到你的csproj文件,然后运行dotnet ef命令。
  • 帮助安装了 Microsoft.EntityFrameworkCore.Tools

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


【解决方案1】:

以下帮助我将缺少的工具添加到 .net core 3.1

  1. 安装包 Microsoft.EntityFrameworkCore.Tools

  2. 更新包 Microsoft.EntityFrameworkCore.Tools

  3. 获取关于_EntityFrameworkCore 的帮助

来自Blog

【讨论】:

  • 您可能还需要针对特定​​版本:install-package Microsoft.EntityFrameworkCore.Tools -version 3.1.10
【解决方案2】:
  1. 工具
  2. NuGet 包管理器
  3. 管理解决方案的 NuGet 包
  4. 安装 Microsoft.EntityFrameworkCore.Tools
  5. 再试一次

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,这些步骤解决了它..

    1) 工具 -> Nuget 包管理器 -> 包管理器设置

    2) 常规标签

    3) 清除所有 NuGet 缓存

    4) 重启 Visual Studio

    【讨论】:

      【解决方案4】:

      将您的第一次迁移添加到新包时:

      1. 创建数据模型类(包含表的列和数据类型;有关详细信息,请参阅下面的源链接)
      2. 在 Pages 目录中添加一个新文件夹(建议:使用您的主/父数据库表的名称 - 即没有任何外键的表)
      3. 右键单击该新文件夹 > 添加 > 新建脚手架项目 > “使用实体框架 (CRUD) 的 Razor 页面” > 添加
      4. 选择您的主要模型类
      5. 单击“+”以添加数据上下文类(这是重要的关键成分,此处是自动化的)
      6. 通过将“Models”替换为“Data”来更改数据上下文类名称(这样它将创建具有正确命名空间的数据库上下文类)
      7. 点击添加

      如果您创建了多个模型(在数据库中创建多个表),还请按照以下步骤操作:

      1. 打开文件:DataContext.cs
      2. 为每个模型(数据库表)复制第 17 行

      在所有情况下,在包管理器控制台中继续执行以下 2 个命令(工具 [从顶部菜单] > NuGet 包管理器 > 包管理器控制台):

      1. Add-Migration <NameYourMigration>,将生成迁移代码(在 Migrations 目录中创建一个新类,新类的文件名以时间戳开头)
      2. Update-Database,它将使用刚刚在 Migrations 目录中创建的新类文件中的 Up() 方法运行 砰!现在,您的数据库中应该有 (a) 个新的数据库表了!

      查看数据库表:

      1. 查看(从顶部菜单)> SQL Server 对象资源管理器 > SQL Server > (localdb)\MSSQLLocalDB... > 数据库 > 上下文... > 表
      2. 查看数据定义:双击表名
      3. 要查看数据(现在为空表):右键单击表名 > 查看数据

      来源(有图片,但有些步骤在教程中展开):https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/model

      【讨论】:

        猜你喜欢
        • 2018-01-18
        • 1970-01-01
        • 1970-01-01
        • 2017-03-26
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多