Как сделать свою бд с IdentityDbContext?

131
05 сентября 2019, 20:30

Как правильно заполнять таблицу? Создал Custom IdentityUser, создал AccountDatabase.mdf, и вроде как создал правильный IdentityDbContex (все как в примере ниже)

public class ApplicationUser : IdentityUser
{
    [Display(Name="Full Name"),Required]
    public string FullName { get; set; }
    [Display(Name = "Rang"), Required]
    public string Rang { get; set; }
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        // Обратите внимание, что authenticationType должен совпадать с типом, определенным в CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Здесь добавьте утверждения пользователя
        return userIdentity;
    }
}
public class AccountContext: IdentityDbContext<ApplicationUser>
{
    public AccountContext() : base("AccountDatabase")
    { }
    DbSet<ApplicationUser> ApplicationUsers { get; set; }
    DbSet<SettingModel> SettingModels { get; set; }
}

, как правильно создать таблицу AccountDatabase? То при создании нового пользователя пишет:

Несколько наборов объектов на тип не поддерживаются. Наборы объектов "ApplicationUsers" и "Users" могут оба содержать экземпляры типа "ExampleCustomUserAndRole.Models.ApplicationUser".
Answer 1

Просто вычеркните строку

DbSet<ApplicationUser> ApplicationUsers { get; set; }

Она не нужна, т.к. вы уже указали что AccountContext: IdentityDbContext<ApplicationUser>.

"Заполнять" таблицу можете самым простым способом: регистрацией через сайт. Т.к. у вас все доп. поля (пока что) - это строки, то они просто будут пустыми.

По-хорошему, нужно конечно поправить контроллер AccountManager экшн Register который вызывается при регистрации пользователя. Хотя бы просто какими-то константами заполнить эти поля, либо поправить ввод данных полей в модели RegisterViewModel и представлении Register.cshtml.

READ ALSO
Вывод елементов от меньшего к большему C#

Вывод елементов от меньшего к большему C#

A, B, C и D – целые коэффициенты кубического уравненияНужно вывести через пробел в порядке возрастания все корни заданного кубического уравнения

86
Как изменить operationId в Swagger?

Как изменить operationId в Swagger?

Обновился до Core 22 В Swagger появилась проблема с operationId

90
Прерывание многопоточности

Прерывание многопоточности

пишу программу, работающую с несколькими модемамиДля ускорения работы использую async await методы и запускаю их асинхронно

78
Прочесть журнал безопасности Windows без прав администратора

Прочесть журнал безопасности Windows без прав администратора

Пишу приложение для того чтобы выводить журналы Windows в нужном мне видеРади пробы написал консольную прогу, которая просто извлекает все записи...

95