我使用VS Code和ASP.NET Core MVC在Mac上启动了一个项目,这是我的csproj:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.3.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>
我总是得到“找不到匹配命令的可执行文件”dotnet-ef“”
我在Windows 10上尝试过,得到的结果相同。
我错过了什么?
答案 0 :(得分:11)
添加此功能以使其正常工作:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version = "1.0.0"/>
</ItemGroup>
答案 1 :(得分:4)
从包含csproj文件的文件夹中,将以下内容添加到csproj文件中:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>2.0.5</RuntimeFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
现在通过执行以下命令包含所需的依赖项:
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools.DotNet
恢复项目,以便检查所有依赖项
dotnet restore
为了确保一切正常,请运行以下命令
dotnet ef
应显示基本dotnet ef
命令用法的屏幕
检查项目是否仍在构建:
dotnet build
使用以下命令从数据库生成脚手架:
dotnet ef dbcontext scaffold "Server=<your_server_address[,port_number]>;Initial Catalog=<your_db>;User Id=<your_user>;Password=<your_password>" Microsoft.EntityFrameworkCore.SqlServer -f -c YourDbContext -o Db --json
上面的命令可以描述为负责读出数据库并生成脚手架poco实体类和dbcontext文件的命令。它需要一个基本的工作连接字符串,参数f
强制覆盖,c
为上下文命名,o
确定输出文件夹和创建的类的命名空间json
参数在json中输出命令结果而不是零粗壮。
保持此命令很好,只要数据库中的更改必须反映在ORM上,它就会被使用