我发誓我以前做过,但我现在似乎无法让它工作。基本上我得到一个EndUser
包含 a Site
,我想将它映射Site
到一个SiteInfo
对象。
这是我的地图配置:
Mapper.CreateMap<Site, SiteInfo>()
.ForMember(dest => dest.SiteID, opt => opt.MapFrom( src => src.ID))
.ForMember(dest => dest.CompanyID, opt => opt.MapFrom(src => src.Company.ID));
Mapper.CreateMap<EndUser, SiteInfo>()
.ForMember( dest => dest, opt => opt.MapFrom(src => src.Site ));
所以EndUser.Site
应该可以映射到SiteInfo
。我可以通过调用在外面做到这一点Mapper.Map<SiteInfo>(EndUser.Site)
。我认为直接从最终用户映射到位置信息只是更简洁的语法。
那么我怎样才能直接从EndUser
to映射SiteInfo
呢?基本上这是我想写的代码:
var user = mcp.Users.GetEndUser(userAddress.Address);
var siteInfo = Mapper.Map<SiteInfo>(user);
目前我正在通过EndUser.Site
这样的映射来解决这个问题:
var user = GetEndUser(emailAddress);
var siteInfo = user == null
? null as SiteInfo
: Mapper.Map<SiteInfo>(user.Site);