web-dev-qa-db-fra.com

Identity asp.net core 3.0 - IdentityDbContext introuvable

Mon application a rompu avec la version 3.0 de .NET core avec des erreurs de référence pour IdentityDbContext. Je regarde la documentation pour Identity sur le noyau 3.0 mais cela implique que IdentityDbContext devrait être là. C'est la seule erreur que j'obtiens avec quelques erreurs DbContext.

J'ai une API assez simple, pas de vues MVC, juste un serveur de données qui rend les objets JSON. Il est basé sur l'identité, il a donc les utilisateurs, les rôles et les revendications. Et ça commence à en profiter. Mon principal DbContext étend IdentityDbContext<ApplicationUser> mais après avoir changé la plate-forme cible en 3.0 après la mise à niveau, il dit qu'elle n'existe pas et me donne des erreurs de compilation. Quelqu'un a-t-il rencontré cela? Suis-je en train de manquer quelque chose? Les pages de migration et de modification des modifications ne semblent pas avoir de solution à mon problème.

DbContext ressemble à ceci:

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
    }
}
10
Paul Carlton

Dans ASP.NET Core 3.0 , les packages liés à Entity Framework Core Et Identity ont été supprimés du Microsoft.AspNetCore.App métapaquet. Vous devez donc ajouter ces packages séparément.

Ajoutez les PackageReferences suivants au fichier .csproj De votre projet comme suit:

<ItemGroup>
    <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" />
</ItemGroup>

Maintenant ça va marcher!

Pour plus de détails: assemblys supprimés du framework partagé ASP.NET Core

19
TanvirArjel