以前にやったことは誓いますが、今はうまくいかないようです。基本的に、EndUserを含むものを取得していて、それをオブジェクトSiteにマップしたいと思います。SiteSiteInfo
これが私のマップ構成です:
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では、どうすればからに直接マップでき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);