System.InvalidOperationException: значение IdentityUserRole.RoleId неизвестно при попытке сохранить изменения. Это связано с тем, что свойство также является частью внешнего ключа, для которого основной объект в связи неизвестен.
У меня есть метод Register р>
Код: Выделить всё
public async Task Register(RegisterBaseDto RegisterDto)
{
var UserRole = await RoleManager.FindByIdAsync(RegisterDto.RoleId.ToString());
if (UserRole == null)
{
return OperationResult.Failure("User Role Not Found.");
}
IdentityResult Result = null;
AppUser? MappedUser = UserFactory.Create(UserRole, RegisterDto);
if (MappedUser == null)
{
return OperationResult.Failure("User Not Created.");
}
Result = await UserManager.CreateAsync(MappedUser, RegisterDto.Password);
if (Result.Succeeded)
{
var mappedRegisterResponse = Mapper.Map(MappedUser);
var roleAssignmentResult = await UserManager.AddToRoleAsync(MappedUser, UserRole.Name);
if (roleAssignmentResult.Succeeded)
{
return OperationResult.Success(mappedRegisterResponse);
}
else {
return OperationResult.Failure("User is not created, Please try again.");
}
}
return OperationResult.Failure("User is not created, Please try again.");
}
- Я использую ASP.NET Core 8 с Entity Framework Core и ASP.NET Identity.
- Класс AppUser наследует от IdentityUser.
Что я пробовал:
- Убедился, что роль существует в базе данных перед назначением ее пользователю.
- Проверено, что контекст базы данных настроен правильно и что IdentityUserRole настроена правильно.
- Проверено на наличие потенциальных проблем с отношениями сущностей в моем DbContext.
Подробнее здесь: https://stackoverflow.com/questions/791 ... d-is-unkno