Что делать выкидывает исключение "AddEntityFrameworkStores can only be called with a user that derives from IdentityUser?

Пишу свой небольшой проект, после добавления пакетов Microsoft.AspNetCore.Identity.EntityFrameworkCore и Microsoft.EntityFrameworkCore.SqlServer, добавил класс user`using Microsoft.AspNetCore.Identity; я определил Модель

namespace PartyInvites.Models
{
    public class User : IdentityUser
    {
        public int Year { get; set; }

    }
}

Далее я сделал класс подключения к базе данных с конфигурацией подключения в appsettings.json. Добавил модель для регистрации пользователей

using System.ComponentModel.DataAnnotations;

namespace PartyInvites.Models.ViewsModels
{
    public class RegisterViewModels
    {
        [Required]
        [Display(Name = "Email")]
        public string Email { get; set; }

        [Required]
        [Display(Name = "Год рождения")]
        public int Year { get; set; }

        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Пароль")]
        public string Password { get; set; }

        [Required]
        [Compare("Password", ErrorMessage = "Пароли не совпадают")]
        [DataType(DataType.Password)]
        [Display(Name = "Подтвердить пароль")]
        public string PasswordConfirm { get; set; }
    }
}

Так же добавил cshtml cтраничку

@model PartyInvites.Models.ViewsModels.RegisterViewModels
<h2>Регистрация нового пользователя</h2>
<form method="post" asp-controller="Account" asp-action="Register">
    <div asp-validation-summary="ModelOnly"></div>
    <div>
        <label asp-for="Email"></label><br />
        <input asp-for="Email" />
        <span asp-validation-for="Email"></span>
    </div>
    <div>
        <label asp-for="Year"></label><br />
        <input asp-for="Year" />
        <span asp-validation-for="Year"></span>
    </div>
    <div>
        <label asp-for="Password"></label><br />
        <input asp-for="Password" />
        <span asp-validation-for="Password"></span>
    </div>
    <div>
        <label asp-for="PasswordConfirm"></label><br />
        <input asp-for="PasswordConfirm" />
        <span asp-validation-for="PasswordConfirm"></span>
    </div>
    <div>
        <input type="submit" value="Регистрация" />
    </div>
</form>

Далее я прописал app.UseAuthentication(); перед app.UseEndpoints... , и определил подключение к базе данных и начальную конфигурацию для Identity сервисов

public void ConfigureServices(IServiceCollection services)
        {

            services.AddControllersWithViews();
            
            services.AddDbContext<Models.ApplicationContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
            services.AddIdentity<System.Web.Providers.Entities.User, IdentityRole>()
            .AddEntityFrameworkStores<ApplicationContext>();

        }

И на строчке с Сервисами возникает исключение System.InvalidOperationException: "AddEntityFrameworkStores can only be called with a user that derives from IdentityUser.", не могу понять от чего отталкиваться, делаю весьма стандартную регистрацию и классическое подключение к бд. Не судите строго, делаю свой первый небольшой веб проект...Не понимаю от чего здесь надо отталкиваться.

мое дерево проекта


Ответы (1 шт):

Автор решения: Alexey Kurtov

Ваш контекст ApplicationContext необходимо наследовать от IdentityDbContext<User> и не забудьте добавить миграции

→ Ссылка