【发布时间】:2019-05-22 15:15:45
【问题描述】:
我正在尝试编写一个查询来让系统中的用户拥有他/她的所有角色。用户和角色之间存在多对多的关系。连接器表是SystemUserUserRole,列有UserId 和RoleId。我的模型如下:
系统用户模型
[Key]
public int UserId { get; set; }
[Required]
[MaxLength(75)]
public string FirstName { get; set; }
[Required]
[MaxLength(75)]
public string LastName { get; set; }
[Required]
[MaxLength(15)]
public string Phone { get; set; }
[Required]
[MaxLength(250)]
public string Email { get; set; }
public virtual List<UserRole> UserRoles { get; set; }
用户角色模型
[Key]
public int RoleId { get; set; }
[Required]
[MaxLength(250)]
public string RoleName { get; set; }
public virtual List<SystemUser> SystemUsers { get; set; }
我正在尝试在下面做一些没有运气的事情。关于我做错了什么的任何建议。
string query = "SELECT u.*, r.* FROM SystemUser u INNER JOIN SystemUserUserRole ur ON u.UserId = ur.UserId INNER JOIN UserRole r on ur.RoleId = r.RoleId WHERE Email = @email AND IsActive = true;";
SystemUser user = con.Query<SystemUser, UserRole, SystemUser>(query, (SystemUser, UserRole) => { SystemUser.UserRoles = UserRole; return SystemUser; }).First();
【问题讨论】:
标签: asp.net-mvc-4 dapper