如何在IdentityUser和IdentityRole之间创建多对多?

时间:2016-02-19 14:29:48

标签: asp.net-mvc asp.net-identity

我正在使用Microsoft Identity,我需要与IdentityUserIdentityRole创建多对多关系。我将public virtual ICollection<Role> IdentityRoles { get; set; }的属性添加到IdentityUser类,将public virtual ICollection<User> IdentityUsers { get; set; }添加到IdentityRole,但迁移会添加一个名为RoleUsers的表。

我想将现有的UserRoles表用于多对多关系。

我该如何创作?

1 个答案:

答案 0 :(得分:1)

用户和角色已经有很多人。

using (var context = new MyContext()) 
{     
    var usersAndTheirRoles = context.Users.Include(u => u.Roles).ToList();
    var rolesAndTheirUsers = context.Roles.Include(u => u.Users).ToList();
}

或者你想要做些不同的事情吗?

编辑:您可以从角色管理器获取IdentityRoles:

var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));

foreach (var iur in users.First().Roles)
{
    var identityRole = roleManager.FindById(iur.RoleId);
}