繁体   English   中英

在.NET Core 2.2中找不到Microsoft.Extensions.EntityFrameworkCore命名空间

[英]Microsoft.Extensions.EntityFrameworkCore namespace not found in .NET Core 2.2

我正在阅读《 Pro ASP.NET Core MVC 2》一书,并按照他的示例进行学习,并且已经达到了介绍EF Core的地步。

他说要将以下内容添加到.csproj文件中...

<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" 
                        Version="2.0.0" />

...然后将以下内容添加到Startup.csConfigureServices方法中...

services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(
        Configuration["Data:SportStoreProducts:ConnectionString"]));

问题是,当我将行添加到.csproj文件时,在输出窗口中显示一条消息,提示...

C:\\ Program Files \\ dotnet \\ sdk \\ 2.2.104 \\ Sdks \\ Microsoft.NET.Sdk \\ targets \\ Microsoft.NET.ObsoleteReferences.targets(33,5):警告NETSDK1059:工具'Microsoft.EntityFrameworkCore.Tools.DotNet现在已包含在.NET Core SDK中。 有关解决此警告的信息,请访问( https://aka.ms/dotnetclitools-in-box )。

OK,所以我再次从.csproj文件中删除了该行,并在Startup.cs文件中出现了编译器错误:

找不到类型ApplicationDbContext

我为命名空间Microsoft.Extensions.EntityFrameworkCore添加了using,但是这导致了编译器错误,表明找不到该错误。 我接受了报价(我认为来自R#)来搜索Nuget,但没有提出任何建议

有任何想法吗? 除了降级到2.0,我不知道如何进行。

更新好,所以我很傻。 我躺在床上看书,然后第二天尝试编写示例代码,并以为我知道内容,在构建项目时略读了内容。 我一定错过了他展示更改的两个代码段。 我所有的错,不是这本书的错。

到目前为止,关于ASP.NET Core书籍的坏事是它们很快就过时了。

此页面说明, dotnet ef命令的<DotNetCliToolReference>引用现在已成为SDK的一部分,因此不再需要它们。

至于找不到类ApplicationDbContext ,这是因为所使用的项目模板未对单个用户帐户使用ASP.NET Core标识,并且该书没有说明该类需要手动创建,或者您未遵循它彻底。 您有两种解决方法:

  • 使用ASP.NET Core Identity重新创建项目。 步骤在这里 ,或
  • 创建该类就是这样:

     public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { } 

    但是请注意,如果书中没有显示此内容,则必须安装一系列ASP.NET Core标识程序包,Entity Framework Core程序包,并在Startup类中对其进行配置,并创建ApplicationUser类。不丢失任何东西。 大量繁琐的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM