Я хочу иметь только один MyIdentityRole
на MyIdentityUser
. Мой текущий код:
public class MyIdentityUser: IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Image { get; set; }
public string PersonalNumber { get; set; }
public string Address { get; set; }
public bool IsDeleted { get; set; }
public string MyIdentityRoleId { get; set; }
public MyIdentityRole MyIdentityRole { get; set; }
}
public class MyIdentityRole: IdentityRole
{
public List<MyIdentityUser> MyIdentityUsers { get; set; }
public List<MenuPermission> MenuPermissions { get; set; }
}
Код контроллера:
private readonly UserManager<MyIdentityUser> _UserManager;
public AdminSideMenuViewComponent(IMenuService menuService, UserManager<MyIdentityUser> userManager)
{
this._MenuService = menuService;
this._UserManager = userManager;
}
public async Task<IViewComponentResult> InvokeAsync()
{
var user = await _UserManager.GetUserAsync(HttpContext.User);
var role = user?.MyIdentityRole; // is always null
var roleId = user?.MyIdentityRoleId; // returns actual roleId as it should
}
Небольшая проблема в том, что когда я получаю пользователя с RoleManager
, все заполнено правильно, но свойство навигации MyIdentityRole
в MyIdentityUser
всегда NULL , хотя MyIdentityRoleId
показывает правильный идентификатор роли. В базе данных [dbo].[AspNetUsers]
есть внешний ключ MyIdentityRoleId
, сгенерированный при первой миграции кода.
Я что-то не так делаю?