var data = _dbContext.Users.Join(_dbContext.Roles, u => u.RoleId, r => r.Id, (u, r) => new {u, r})
.Where(t => t.u.UserName == username && t.u.PassWord == password)
.Where(t => t.u.UserSite.All(x => x.UserId == t.u.Id))
.Where(t => t.r.RoleMenus.All(x => x.RoleId == t.r.Id))
.Select(t => new UserDto()
{
Id = t.u.Id,
UserName = t.u.UserName,
PassWord = t.u.PassWord,
RealName = t.u.RealName,
Phone = t.u.Phone,
RoleId = t.u.RoleId,
RoleName = t.r.RoleName,
LastIp = t.u.LastIp,
LastTime = t.u.LastTime,
Menus = t.r.RoleMenus.Select(x => (int) x.MenuId).ToList(),
Sites = t.u.UserSite.Select(x => x.SiteId).ToList()
});
EF core join
最新推荐文章于 2024-03-28 21:06:04 发布
该代码段展示了如何通过LINQ查询在数据库中联合查询用户、角色及用户站点与角色菜单的关系,以验证用户名、密码,并确保用户拥有对应的角色权限和站点权限。查询结果将转换为用户DTO,包含用户基本信息、角色信息、菜单ID列表和站点ID列表。
摘要由CSDN通过智能技术生成