我正在尝试使用automapper映射我的数据模型,如下所示:
User
-> UserRoles // list<UserRole> - has a prop for User and Role
-> Role
-> RolePermissions // list<RolePermission> - has a prop for Role and Permission
-> Permission
对于一个简化模型,它是一个类似于下面这样的Web服务的DTO:
UserDto
-> Roles // List<RoleDto>
-> Permissions // List<PermissionDto>
正如您所看到的,第一个模型是来自数据库的关系模型——它有两个多对多关系级别,我希望以用户为中心,并聚合用户可以访问的所有角色的所有权限。
我已经设法让userdto的roles属性从user->userroles->roles映射过来,但是权限的聚合确实让我头晕目眩(而且我不能认为是2个gud,所以我需要帮助)
这是我映射到角色的代码,它似乎有效。
CreateMap<RoleDto, UserRole>()
.ForMember(x => x.Role, y => y.MapFrom(z => z))
.ReverseMap();
CreateMap<UserRole, RoleDto>()
.ForMember(x => x.RoleId, y => y.MapFrom(z => z.Role.RoleId))
.ForMember(x => x.Name, y => y.MapFrom(z => z.Role.Name))
.ReverseMap();
CreateMap<User, UserDto>()
.ForMember(x => x.Roles, y => y.MapFrom(z => z.UserRoles))
// NOT SURE HOW TO MAP THIS NEXT LINE --->
//.ForMember(x => x.Permissions, y => y.MapFrom(z => z.UserRoles))
.ReverseMap();
如何将用户注册到的所有角色的所有(唯一)权限聚合到用户下的单个属性中?
谢谢你