Как внедрить userManager внутри конструктора DbContext?C#

Место общения программистов C#
Anonymous
Как внедрить userManager внутри конструктора DbContext?

Сообщение Anonymous »

Я использую IdentityDbContext, и у меня есть класс SeedData, который я использую внутри метода OnModelCreating для заполнения базы данных с использованием начальных миграций следующим образом:

Код: Выделить всё

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//
//
SeedData seedData = new(_userManager);
seedData.SeedWebsiteAdmins(modelBuilder.Entity());
seedData.SeedCompanyAdmins(modelBuilder.Entity());
//
//
}
Этому классу SeedData требуется параметр типа UserManager внутри его конструктора, поскольку ему необходимо создавать новых пользователей следующим образом:

Код: Выделить всё

public async void SeedWebsiteAdmins(EntityTypeBuilder entity)
{
var superAdminLogin = new ApplicationUser()
{
Name = "SuperAdmin",
Email = "SuperAdmin@system.com",
UserType = UserType.WebsiteAdmin
};

var result = await _userManager.CreateAsync(superAdminLogin, "Savage@123");

if (result.Succeeded)
{
await _userManager.AddToRoleAsync(superAdminLogin, RoleNames.WebsiteAdminRole);
}

var superAdmin = new WebsiteAdmin()
{
Id = SuperAdminId,
WebsiteAdminLoginId = superAdminLogin.Id,
MaxServiceDiscount = 100,

};

entity.HasData(superAdmin);
}
Я пробовал внедрить UserManager в конструктор DbContext, но это вызывает следующую ошибку:
System.InvalidOperationException: невозможно разрешить службу для типа «Microsoft.EntityFrameworkCore.DbContext» при попытке активировать «Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore`3[RepositoryProject.DomainAuth.ApplicationUser,Microsoft.EntityFrameworkCore. DbContext,System.Guid]'

Как внедрить UserManager в конструктор DbContext, не вызывая ошибок?< /p>
Или есть ли способ создать идентификационного пользователя без использования UserManager, чтобы я мог удалить зависимость из класса SeedData и, следовательно, она мне не понадобится внутри DbContext?

Подробнее здесь: https://stackoverflow.com/questions/785 ... onstructor

Вернуться в «C#»