繁体   English   中英

自动映射器映射到多个外键

[英]Automapper mapping to multiple foreign keys

我正在使用包含用户详细信息的页面列表。 除了我从UserRole表中获取ID的角色(我使用它从角色表中获取Roles)之外,所有详细信息都来自User表。 一个用户可能有多个角色。 因此,基本上,UserRole表具有UserID和RoleID作为连接User和Role表的外键。

所以我的代码是

config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap<User, UserViewModel>().ForMember(m => m.RolesList, opt => opt.MapFrom(source => (source.UserRoles.Select(w=>w.Role.Name).ToList())));
                });

RolesList是一个IEnumerable。

在有多个外键的情况下,我该如何处理?

编辑:修改后的代码现在提供了角色,但是在用户具有多个角色的情况下,它仍然只提供了一个角色。 有没有一种方法可以获取特定用户的所有角色?

我可以使用普通的Linq查询找到解决方案。

config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap<User, UserViewModel>()
                       .ForMember(m => m.UserRolesList, opt => opt.MapFrom(source => source.UserRoles
                         .Where(w => w.UserId == source.Id)
                         .Select(w => w.Role.Name)
                         .ToList()));
                });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM