Я хотел создать связь таблицы 1-к-1 с IdentityUser для хранения дополнительной информации, такой как человек или профиль).
Все компилируется, однако при попытке зарегистрироваться получаю следующее исключение:
Невозможно создайте DbSet для «IdentityUser», потому что этот тип не включен в модель контекста.
Я знаю, почему я его получаю, потому что мой DbContext теперь имеет DbSet.
Как лучше всего добиться связи 1-к-1 между IdentityUser и человеком и сохранить как можно большую часть стандартного идентификационного кода?
Вот моя модель:
Код: Выделить всё
public class CustomUser : IdentityUser
{
public Person? Person { get; set; }
}
public class Person
{
[Key]
public string PersonId { get; set; }
public string Firstname { get; set; } = String.Empty;
public string Surname { get; set; } = String.Empty;
public long DepartmentId { get; set; }
public long LocationId { get; set; }
public CustomUser AppUser { get; set; }
}
Код: Выделить всё
public class ApplicationDbContext(DbContextOptions options)
: IdentityDbContext(options)
{
public DbSet
Persons { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity()
.HasOne(c => c.Person)
.WithOne(c => c.AppUser)
.HasForeignKey(x => x.PersonId);
base.OnModelCreating(builder);
}
}
Код: Выделить всё
var result = await _userManager.CreateAsync(user, Input.Password);
Подробнее здесь: https://stackoverflow.com/questions/782 ... r-creating