Scaffold-DbContext:找不到命令

时间:2017-05-10 12:17:08

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

我尝试从现有数据库中反转我的模型,但是命令:word-break:break-all 不起作用。

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

我安装了Nuget packeges:

Scaffold-DbContext "Server=(db);Database=xxxx;Trusted_connection=true;" Microsoft.EntityFrameWorkCore.SqlServer -OutputDir Models

我不知道为什么它不起作用。(Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.SqlServer.Design 命令有效) 我确定它有点问题,但我找不到解决方案。请帮帮我

我的.csproj:

dotnet ef

3 个答案:

答案 0 :(得分:2)

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

Install-Package Microsoft.EntityFrameworkCore.Tools -Version 1.1.2

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

答案 1 :(得分:1)

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

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

仅当.csproj文件未自动修改以在安装Tools软件包时添加条目时,才需要执行此步骤。请参阅https://github.com/aspnet/EntityFramework/issues/7358

恢复包裹:

dotnet restore

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

答案 2 :(得分:0)

这对我有用

使用 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来查看您可以通过的选项!