【问题标题】:Scaffold-DbContext: command not foundScaffold-DbContext:找不到命令
【发布时间】:2017-10-09 02:09:55
【问题描述】:

我尝试从现有数据库中反转我的模型,但是命令:Scaffold-DbContext "Server=(db);Database=xxxx;Trusted_connection=true;" Microsoft.EntityFrameWorkCore.SqlServer -OutputDir Models 不工作。

我收到标题中的错误消息。

我安装了 Nuget 包:

Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.SqlServer.Design

我不知道为什么它不起作用。(dotnet ef 命令有效) 我确定这是一个小问题,但我找不到解决方案。请帮帮我

我的 .csproj:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="IdentityServer4">
      <Version>1.5.0</Version>
    </PackageReference>
    <PackageReference Include="IdentityServer4.AccessTokenValidation">
      <Version>1.2.0</Version>
    </PackageReference>
    <PackageReference Include="IdentityServer4.AspNetIdentity">
      <Version>1.0.1</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Identity">
      <Version>1.1.1</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore">
      <Version>1.1.1</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore">
      <Version>1.1.1</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer">
      <Version>1.1.2</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design">
      <Version>1.1.2</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
      <Version>1.1.1</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />
  </ItemGroup>
  <ItemGroup>
      <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" />
    </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.1" />
  </ItemGroup>
</Project>

【问题讨论】:

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


    【解决方案1】:

    通过在包管理器控制台中运行以下命令,在您的项目中安装 Microsoft EntityFrameworkCore 工具 nuget 包。

    Install-Package Microsoft.EntityFrameworkCore.Tools -Version 1.1.2
    

    这将安装 Cmdlet 以通过包管理器控制台运行数据库优先方法。详情请访问https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/

    【讨论】:

      【解决方案2】:

      这对我有用

      使用 dotnet ef dbcontext scaffold 代替 Scaffold-DbContext

      例如

      dotnet ef dbcontext scaffold "Host=my_host;Database=my_db;Username=my_user;Password=my_pw" Npgsql.EntityFrameworkCore.PostgreSQL -c ContextName -o OutPutFolder 
      

      运行dotnet ef dbcontext scaffold -h 以查看您可以通过的选项!

      【讨论】:

        【解决方案3】:

        修改.csproj 文件以包含以下部分:

        <ItemGroup>
            <DotNetCliToolReference
                Include="Microsoft.EntityFrameworkCore.Tools.DotNet"
                Version="1.0.0-msbuild3-final" />
        </ItemGroup>
        

        只有在安装工具包时没有自动修改.csproj 文件以添加条目时,才需要执行此步骤。见https://github.com/aspnet/EntityFramework/issues/7358

        恢复包:

        dotnet restore
        

        现在,检查您的 dotnet ef dbcontext scaffold 命令。

        【讨论】:

          猜你喜欢
          • 2020-02-24
          • 1970-01-01
          • 2018-03-06
          • 2023-02-11
          • 2018-05-22
          • 2018-06-25
          • 2017-04-09
          • 2019-03-10
          • 1970-01-01
          相关资源
          最近更新 更多