Identity asp.net core 3.0 - IdentityDbContext не найден - PullRequest
1 голос
/ 25 сентября 2019

Мое приложение сломалось с выпуском ядра .NET 3.0 с ошибками ссылки для IdentityDbContext.Я просматриваю документацию на Identity на ядре 3.0, но это подразумевает, что IdentityDbContext должен быть там.Это единственная ошибка, которую я получаю с парой DbContext ошибок.

У меня довольно простой API, нет представлений MVC, только сервер данных, который возвращает объекты JSON.Он основан на идентичности, поэтому у него есть пользователи, роли и требования.И это начинает использовать это в своих интересах.Мой основной DbContext расширяет IdentityDbContext<ApplicationUser>, но после переключения целевой платформы на 3.0 после обновления он говорит, что его не существует, и выдает ошибки компиляции.Кто-нибудь сталкивался с этим?Я что-то пропустил?Похоже, что на страницах миграции и критических изменений ничего не решается.

DbContext выглядит следующим образом:

using System;
using Microsoft.AspNetCore.Identity;
//using Microsoft.AspNetCore.Identity.EntityFrameworkCore; <- this no longer works either
using Microsoft.EntityFrameworkCore; //<- this I had to download as a package
using App.Constants;
using App.Models.Identity;

namespace App.Models
{
    public class AppContext : IdentityDbContext<ApplicationUser> //<- error is right here
    {
        ... my models
    }
}

1 Ответ

3 голосов
/ 25 сентября 2019

В ASP.NET Core 3.0 , Entity Framework Core и Identity связанные пакеты удалены из метапакета Microsoft.AspNetCore.App.Поэтому вам нужно добавить эти пакеты отдельно.

Добавьте следующие PackageReference s в файл .csproj вашего проекта следующим образом:

<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />

Теперь это будет работать!

Более подробно: Удалены сборки из общей платформы ASP.NET Core

...