源对象:
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; }
}
Run Code Online (Sandbox Code Playgroud)
目标对象:
public class OzCpPlatformContentTemplateItemRecord
{
public int Id { get; set; }
public string TemplateContent { get; set; }
public ContentTemplateIdentifierEnum TemplateIdentifier { get; set; }
public WebsitePropertyEnum WebsiteProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
映射配置:
Mapper.CreateMap<Platform_ContentTemplatesModel, OzCpPlatformContentTemplateItemRecord>()
.ForMember(dest => dest.WebsiteProperty, opt => opt.MapFrom(src => src.WebsitePropertyId));
Run Code Online (Sandbox Code Playgroud)
现在 TemplateIdentifier 从int到enum的映射工作得很好。然而,WebsitePropertyid 到 WebsiteProperty 的映射(即,到枚举的短路)失败,但出现以下异常:
{“缺少类型映射配置或不受支持的映射。映射类型:Int16 -> WebsitePropertyEnum System.Int16 -> WebsitePropertyEnum 目标路径:OzCpPlatformContentTemplateItemRecord.WebsiteProperty.WebsiteProperty 源值:1”}
现在我有一个值为 1 的枚举成员。这里的问题是基础类型是一个Short。我无法将其更改为int那么我该如何解决这个问题?
小智 7
确保您的目的地枚举映射到一个短的
public enum WebsitePropertyEnum : short
{
thing1 = 0,
thing2 = 1
}
Run Code Online (Sandbox Code Playgroud)