繁体   English   中英

Automapper不支持将int16映射到枚举

[英]Automapper unsupported mapping int16 to enum

  • 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枚举的映射可以正常工作。 但是,WebsitePropertyid到WebsiteProperty的映射(即枚举缩写)失败,但以下情况除外:

{“缺少类型映射配置或不支持的映射。映射类型:Int16-> WebsitePropertyEnum System.Int16-> WebsitePropertyEnum目标路径:OzCpPlatformContentTemplateItemRecord.WebsiteProperty.WebsiteProperty源值:1”}

现在,我有一个枚举成员,其值为1。所以这里的问题是基础类型是short 我不能将其更改为int ,如何解决此问题?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM