entity-framework - 如何在View中获取IdentityUser角色的名称?

标签 entity-framework asp.net-mvc-5 asp.net-identity navigation-properties ef-fluent-api

使用ASP.NET MVC5用户身份,我试图在 View 中显示IdentityUser的角色名称。

似乎Identity用户具有Roles属性,该属性表示IdentityUserRole而不是IdentityRole的集合。区别在于IdentityUserRole表示IdentityUserIdentityRole之间的关联,而IdentityRole是实际的Role模型 [+] 。显然,在IdentityUser和IdentityRole之间没有定义导航。所以我们得到的只是IdentityUserRole中的RoleId。

  • 是否有一种简单的方法来获取角色名称?
  • 使用Fluent API,我们可以在IdentityRoleIdentityUserRole之间定义虚拟导航属性来轻松获取名称
    在整个项目中?
  • 如果是设计使然,不让我们直接获取IdentityRole有什么好处?
  • 最佳答案

    您可以使用角色管理器来选择身份中的用户角色

    var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(this.dbcontext));
    

    从用户那里获得用户角色,然后从该角色中选择名称
    roleManager.FindById(user.RoleId).Name
    

    关于entity-framework - 如何在View中获取IdentityUser角色的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27097204/

    相关文章:

    .net - Entity Framework 和 .NET 4.0 的 LINQ to SQL 之间有什么区别?

    asp.net - Paypal 处理 - 需要抓取 TransactionId、CorrelationId 和 TimeStamp

    c# - ASP.NET 身份用户存储 : Why return Task?

    asp.net-mvc - 用户访问网站时记录 MVC

    c# - Entity Framework 中扩展部分类的放置

    C# EF 4.1 在 DbContext 中动态创建表

    asp.net - 引用类库

    c# - 计数错误,但我没有在我的 LINQ 表达式中使用计数,

    c# - 将默认身份登录路由更改为自定义 asp.net core

    sql - 使用包含多个选项的 Entity Framework 查询