Automapper不支持将int16映射到枚举

时间:2015-11-26 04:05:58

标签: c# automapper

  • AutoMapper 4.1.1

源对象:

public class Platform_ContentTemplatesModel : OzEfEntity, IEntity<int>
{
    public string TemplateContent { get; set; } 
    public int TemplateIdentifier { get; set; } 
    public short WebsitePropertyId { get; set; }
    public int Id { get; set; } 
}

目标对象:

public class OzCpPlatformContentTemplateItemRecord
{
    public int Id { get; set; }
    public string TemplateContent { get; set; }
    public ContentTemplateIdentifierEnum TemplateIdentifier { get; set; }
    public WebsitePropertyEnum WebsiteProperty { get; set; }
}

映射配置:

Mapper.CreateMap<Platform_ContentTemplatesModel, OzCpPlatformContentTemplateItemRecord>()
                .ForMember(dest => dest.WebsiteProperty, opt => opt.MapFrom(src => src.WebsitePropertyId));

现在,TemplateIdentifier从 int enum 的映射完美无缺。但是,WebsitePropertyid到WebsiteProperty的映射,即枚举的映射失败,但出现以下异常:

  

{&#34;缺少类型地图配置或不支持   映射。   映射类型:   Int16 - &gt; WebsitePropertyEnum   System.Int16 - &gt; WebsitePropertyEnum   目的地路径:   OzCpPlatformContentTemplateItemRecord.WebsiteProperty.WebsiteProperty   来源价值:1&#34;}

现在我有一个值为1的枚举成员。这里的问题是基础类型是。我无法将其更改为 int ,那么我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

确保您的目标枚举映射到简短

public enum WebsitePropertyEnum : short
{
    thing1 = 0,
    thing2 = 1
}