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