AutoMapper将对象映射到MS Dynamics CRM中的查找字段

我正在尝试使用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实体,它具有评论,Subject等字段,但它也有一个类型为AccountLookUp字段 帐户

但我不知道如何映射LookUp字段。

以下是我的Automapper

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))抛出类型不匹配的错误..

基本上我的问题是我不知道如何映射CRM实体的目的地的LookUp字段。


您需要在AutoMapper中使用自定义解析器。 在您的自定义解析器中,您需要查询CRM以获取与您的Account对象相匹配的account记录的ID,并将EntityReference返回给此对象。


查找在CRM中作为EntityReferences存储。 所以您需要将您的帐户转换为EntityReference。

我从来没有使用过AutOMapper,但Nicknow建议是有道理的。 只需在实体上调用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))

现在它正在工作

链接地址: http://www.djcxy.com/p/37373.html

上一篇: AutoMapper map object to Lookup field in MS Dynamics CRM

下一篇: AutoMapper ignore properties while mapping a list