Как внедрить 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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