【问题标题】:EF Core: Scaffold DbContext keeps failingEF Core:脚手架 DbContext 不断失败
【发布时间】:2016-10-02 12:58:26
【问题描述】:

ASP.Net Core官方说重启visual studio可以修复如下错误:

 Scaffold-DbContext : The term 'Scaffold-DbContext' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

但是命令一直失败。

我按照 ASP.Net 核心在线文档中提供的示例在包管理器控制台中运行它。

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

【问题讨论】:

  • 请尝试在PowerShell窗口中执行命令(先进入项目文件夹)

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


【解决方案1】:

我也遇到了同样的问题。对我来说,缺少的是 EntityFrameworkCore.Tools 并且没有通过 NuGet 正确安装。

在包管理器控制台 (Tools > NuGet Package Manager > Package Manager Console) 中运行这些命令:

Install-Package Microsoft.EntityFrameworkCore.SqlServer –Pre 
Install-Package Microsoft.EntityFrameworkCore.Tools –Pre 
Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design –Pre

然后在 project.json 我添加了这个:

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
}

重要!确保此版本与 "dependencies" 包匹配(也在 project.json 中)。在这个例子中“1.1.0-preview4-final”也应该用在依赖中。

如果问题仍然存在,请尝试恢复您的 ef 运行时,可在此处找到指南:https://github.com/aspnet/EntityFramework/issues/5549

【讨论】:

    【解决方案2】:

    这是我在创建新的 ASP.NET Core 1.1 项目时开始的,它为我节省了大量时间。如果您完成了第 1 步并且第 2 步没有立即生效,请尝试重新启动 Visual Studio 并继续执行第 2 步。

    第一步

    使用以下作为 project.json。恢复包。

    {
      "version": "1.0.0-*",
    
      "dependencies": {
        "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
        "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
        "Microsoft.EntityFrameworkCore": "1.1.0",
        "Microsoft.EntityFrameworkCore.Design": "1.1.0",
        "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
        "NETStandard.Library": "1.6.1",
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "frameworks": {
        "netcoreapp1.1": {
          "imports": "dnxcore50"
        }
      },
      "tools": {
        "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
        "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final"
      }
    }
    

    第 2 步

    在包管理器控制台中运行您的查询。下面的查询连接到 TestServer 中的 TestDb db

    Scaffold-DbContext "Data Source=TestServer;Initial Catalog=TestDb;Persist Security Info=True;User ID={Username};Password={Password}" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force -v -t dbo.Table1, dbo.Table2, dbo.Table3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 2019-06-18
      • 2015-11-29
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 2021-06-14
      相关资源
      最近更新 更多