我正在尝试使用AutoMapper进行映射
源对象是C#对象
public class Source
{
public string comment { get; set; }
public string Subject { get; set; }
public Account Account{ get; set; }
}
public class Account
{
public string FirstName{ get; set; }
public string LastName{ get; set; }
}
我的目的地是一个名为CRM_destination的CRM实体,它有注释、主题等字段,但也有一个LookUp字段帐户类型。
但我不知道如何映射LookUp字段
以下是我的自动映射
AutoMapper.Mapper.CreateMap<Source, Destinaetion>()
.ForMember(dest => dest.comment, opt => opt.MapFrom(src => src.comment))
.ForMember(dest => dest.account, opt => opt.MapFrom(src => src.account));
.ForMember(dest=>dest.account,opt=>opt.MapFrom(src=>src.account((正在引发类型不匹配的错误。。
基本上我的问题是我不知道如何将LookUp字段映射到CRM实体的目的地
您需要在AutoMapper中使用自定义解析器。在自定义冲突解决程序中,您需要查询CRM以获取中与Account
对象匹配的account
记录的ID,并向该对象返回EntityReference。
查询存储为CRM中的EntityReferences。因此,您需要将您的帐户转换为EntityReference。
我从来没有用过AutOMapper,但Nicknow的建议是有道理的。只需在Entity上调用ToEntityReference()
方法。
我解决了它。查找创建了一个关系。我的lookp创建了一个关系名称cxrm_account_cxrm_source_account
所以不是.ForMember(dest=>dest.account,opt=>opt.MapFrom(src=>src.account((
我做了
.ForMember(dest=>dest.cxrm_account_cxrm_source_account,opt=>opt.MapFrom(src=>src.account((
现在它正在上运行