首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用EF核心2.1的类库?找不到与命令"dotnet-ef“匹配的可执行文件

使用EF核心2.1的类库?找不到与命令"dotnet-ef“匹配的可执行文件
EN

Stack Overflow用户
提问于 2018-06-09 03:12:24
回答 1查看 588关注 0票数 0

我正在尝试使用EF core2.1设置一个类库项目,并使用.NET核心应用程序接口项目中的这个类库。当我试图将我的模式反向工程到dbcontext中时,我得到一个错误,抱怨缺少EF命令。

类库csproj

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />

  </ItemGroup>

</Project>

donet命令

代码语言:javascript
复制
dotnet ef dbcontext scaffold "Server=.;Database=MyDb;user id=my-user;password=my-pwd;" Microsoft.EntityFrameworkCore.SqlServer -c LastMileContext -o Data

错误:

代码语言:javascript
复制
No executable found matching command "dotnet-ef"

因此,在阅读了其他几个线程之后,我在ItemGroup部分更改了我的csproj文件,如下所示

代码语言:javascript
复制
  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
  </ItemGroup>

现在EF命令运行了,我得到了我的实体类。我的问题是,为什么我还需要手动向csproj文件中添加某些内容?没有别的办法了吗?推荐的方式是什么?似乎我错过了一个dotnet命令步骤或别的什么?

而且,看起来我不是唯一遇到这些问题的人https://fpnotebook.wordpress.com/2017/11/12/solution-entity-framework-core-and-net-core-class-libraries-2-0/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 03:21:30

从.NET Core SDK2.1.300CLI开始支持所谓的.NET Core Global Tools,不需要手动将这些工具添加到您的csproj文件中。

您所需要做的就是像在npm中一样调用dotnet tool install -g toolname。您可以在此repo中找到有关可用工具的一些信息。

dotnet ef已经包含在2.1.300SDK CLI中。

我建议您使用download并安装.NET CoreSDK2.1.300来支持这种全局工具,但如果您没有计划迁移到.NET Core2.1,则仍然使用.NET Core2.0。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档