I have upgraded my code from ASP.NET Core 2.0 to Core 2.1. I created a new Core 2.1 project and moved my code into the new project. I have provided samples of my startup and
Try changing public partial class ApplicationDbContext : IdentityDbContext<ApplicationUser>
to public partial class ApplicationDbContext : IdentityDbContext<IdentityUser>
Compiler will generate DbSet with the type provided to generic IdentityDbContext<TUser>
class.
Change the ApplicationDbContext
to:
private static bool _Created = false;
public ApplicationDbContext()
{
if (!_Created)
{
_Created = true;
Database.EnsureCreated();
}
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"server = .\SQLSERVER; initial catalog = DBName; Integrated Security = True; MultipleActiveResultSets = True; App = EntityFramework & quot; ");
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
From Your startup.cs change
services.AddDefaultIdentity<IdentityUser>()
To
services.AddDefaultIdentity<ApplicationUser>()
As a follow up: to avoid the next possible issue as soon as this here is fixed: You also have to change the types in the Views\Shared_LoginPartial.cshtml
From
@inject SignInManager<IdentityUser> SignInManager
@inject UserManager<IdentityUser> UserManager
To
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager