Я обновил свой проект с .NET 8 до .NET 9. Однако при переносе базы данных возникла ошибка. На GitHub есть обсуждение этой проблемы: https://github.com/dotnet/efcore/issues/35110.
Это мой код, который не работает для EF Core 9. :
var seedUser = new MyUser
{
Id = "ID",
UserName = "username",
NormalizedUserName = "username".ToUpper(),
EmailConfirmed = true,
Email = email,
NormalizedEmail = email.ToUpper(),
LockoutEnabled = false
};
var ph = new PasswordHasher();
seedUser.PasswordHash = ph.HashPassword(seedUser, "password123");
modelBuilder.Entity().HasData(seedUser);
Похоже, нам не следует использовать какое-либо динамическое значение при использовании метода HasData для добавления исходных данных в EF Core 9, например Guid.NewGuid() или HashPassword( ). Microsoft также рекомендует пользователям использовать новый метод UseSeeding для добавления исходных данных, если пользователи хотят добавить какие-либо начальные данные ролей и пользователей ASP.NET Core Identity.
Итак, мой вопрос как мне получить службы UserManager или RoleManager? Я попробовал приведенный ниже код, но у меня он не сработал.
services.AddDbContext((sp, options) =>
{
var userManager = sp.GetRequiredService();
options.UseNpgsql(connectionString)
.UseAsyncSeeding((context, _, cancellationToken) => Seeding(context, userManager, cancellationToken));
});
Подробнее здесь: https://stackoverflow.com/questions/792 ... in-ef-core
Как можно добавить исходные данные ASP.NET Core Identity с помощью UseSeeding в EF Core 9? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как можно добавить начальные данные ASP.NET Core Identity с помощью UseSeeding в EF Core 9?
Anonymous » » в форуме C# - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-