来自db的ASP.NET MVC模型

问题描述:

我从DB创建了我的模型,其中我有表用户,角色和UsersInRoles,它是前两个之间的中间表。我的问题是,如何获取特定用户,其中Roles = something因为UsersInRoles表没有添加到模型中?来自db的ASP.NET MVC模型

public partial class Role 
    { 
     public Role() 
     { 
      this.Users = new HashSet<User>(); 
     } 

     public int RoleID { get; set; } 
     public string RoleName { get; set; } 
     public string RoleDescription { get; set; } 

     public virtual ICollection<User> Users { get; set; } 
    } 

public partial class User 
    { 
     public User() 
     { 
      this.Roles = new HashSet<Role>(); 
     } 

     public int UserID { get; set; } 
     public string Username { get; set; } 
     public string Password { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 

     public virtual ICollection<Role> Roles { get; set; } 
    } 

public ActionResult Index() 
     { 
      var users = db.Users; 
      return View(users.ToList()); 
     } 

我相信这会工作...

 var usersInRole = db.Users.Where(x => x.Roles.Any(y => y.RoleId == roleid)); 

我承认没有太多的经验与HashSets,但是有没有任何理由一个简单的Linq查询将无法正常工作?

var requestedUsers = from UsersInRoles 
        in db.Users 
        where UsersInRoles.Roles.Contains(DesiredRoleHere) 
        select UsersInRoles;