web-dev-qa-db-fra.com

ASP.NET Core 2.1 - Problème IdentityUser - Impossible de créer un DbSet pour 'IdentityUser', ce type n'est pas inclus dans le modèle pour le contexte.

J'ai mis à niveau mon code d'ASP.NET Core 2.0 vers Core 2.1. J'ai créé un nouveau projet Core 2.1 et déplacé mon code dans le nouveau projet. J'ai fourni des échantillons de mon démarrage et ApplicationDbContext

J'obtiens l'erreur suivante en essayant de me connecter

Impossible de créer un DbSet pour 'IdentityUser' car ce type n'est pas inclus dans le modèle pour le contexte . Microsoft.EntityFrameworkCore.Internal.InternalDbSet.get_EntityType ()

startup.cs

//Core 2.1
  services.AddDefaultIdentity<IdentityUser>()
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();            

////Old Core 2.0 Code
  //services.AddIdentity<ApplicationUser, IdentityRole>()
        //    .AddEntityFrameworkStores<ApplicationDbContext>()
        //    .AddDefaultTokenProviders();

ApplicationDbContext.cs

public partial class ApplicationDbContext : 
    IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> 
 options)
        : base(options)
    {
        Database.EnsureCreated();
     }
 }

J'ai examiné les articles Microsoft suivants: https://blogs.msdn.Microsoft.com/webdev/2018/05/30/asp-net-core-2-1-0-now-available/

https://docs.Microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1

3
Les P

Essayez de changer public partial class ApplicationDbContext : IdentityDbContext<ApplicationUser> en public partial class ApplicationDbContext : IdentityDbContext<IdentityUser>

Le compilateur générera DbSet avec le type fourni à la classe générique IdentityDbContext<TUser>.

9

Depuis votre startup.cs change

services.AddDefaultIdentity<IdentityUser>()

À

services.AddDefaultIdentity<ApplicationUser>()
3
Chpn Dave

En guise de suivi, pour éviter le prochain problème possible, lorsque ce problème est résolu: Vous devez également modifier les types dans Views\Shared_LoginPartial.cshtml.

De 

@inject SignInManager<IdentityUser> SignInManager
@inject UserManager<IdentityUser> UserManager

À

@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
0
t2t