来自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;