无法在Visual Studio Code中为EntityFrameworkCore添加迁移

4

我正在尝试使用EntityFrameworkCore在Visual Studio Code中构建DotNetCore WebApi。

我已经阅读了许多教程,但总是在运行以下命令时遇到问题:

运行Add-Migration InitialCreate

我收到以下错误提示:

无法将“add-migration”识别为cmdlet、函数、脚本文件或可运行的程序名称。

其他教程告诉我应该运行以下命令:dotnet ef migrations add InitialCreate

但我收到以下错误提示:No executable found matching command "dotnet-ef"

这是我的csproj中的引用:

<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2"/>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3"/>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2"/>
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="1.1.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.2"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.1.0-preview4-final"/>

我该如何添加迁移?

不要使用 dotnet-ef,而是使用 dotnet ef。同时,请确保在包含 project.json 的目录中运行 dotnet ef - tchelidze
@tchelidze dotnet ef 会调用 dotnet-ef,这是非常正常的。 - DavidG
最后一条评论可能会有用。 - tchelidze
@DavidG 是的,我正在通过 VS Code 内部的 PowerShell 运行命令,它是从包含 csproj 的项目根文件夹运行的。 - mejobloggs
1
你的项目文件中是否包含 Microsoft.EntityFrameworkCore.Tools.DotnetDotNetCliToolReference 条目? - DavidG
显示剩余8条评论
2个回答

8

要使用命令行CLI管理迁移,您需要将工具作为项目的一部分。确保您的项目中有类似以下内容:

<ItemGroup>
    <DotNetCliToolReference 
        Include="Microsoft.EntityFrameworkCore.Tools.Dotnet" 
        Version="1.0.1" />
</ItemGroup>

接下来从命令行开始,确保你在与 csproj 文件相同的目录中,然后运行以下命令:

dotnet ef migrations add InitialCreate

3
为了在Visual Studio Code中使用"dotnet-ef"命令,请通过运行前面的命令安装dotnet ef工具。请注意保留html标签。
dotnet tool install --global dotnet-ef

添加迁移:

dotnet ef migrations add MigrationName

尝试执行

dotnet ef database update

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接