簡體   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