C# AutoMapper-将整数映射到int数组
我正在尝试将数据库中的整数映射到int数组,但遇到错误:C# AutoMapper-将整数映射到int数组,c#,automapper,C#,Automapper,我正在尝试将数据库中的整数映射到int数组,但遇到错误:AutoMapper.AutoMapperConfigurationException:“成员的自定义配置仅支持类型上的顶级单个成员。” 这就是我所拥有的: 型号: public class Year { public int[] Months { get; set; } = new int[3]; } 映射: CreateMap<DataRow, Year>() .ForMember(dest => d
AutoMapper.AutoMapperConfigurationException:“成员的自定义配置仅支持类型上的顶级单个成员。”
这就是我所拥有的:
型号:
public class Year
{
public int[] Months { get; set; } = new int[3];
}
映射:
CreateMap<DataRow, Year>()
.ForMember(dest => dest.Months[0], opt => opt.MapFrom(src => src["Jan"]))
.ForMember(dest => dest.Months[1], opt => opt.MapFrom(src => src["Feb"]))
.ForMember(dest => dest.Months[2], opt => opt.MapFrom(src => src["Mar"]))
CreateMap()
.ForMember(dest=>dest.Months[0],opt=>opt.MapFrom(src=>src[“Jan”]))
.ForMember(目标=>dest.Months[1],选项=>opt.MapFrom(src=>src[“Feb”]))
.ForMember(dest=>dest.Months[2],opt=>opt.MapFrom(src=>src[“Mar”]))
有人知道如何让它工作吗?你需要这样做
.ForMember(dest => dest.Months, opt => opt.MapFrom(src => MapFromRow(src)))
你有什么办法
int[] MapFromRow(DataRow src)
{
int months = new int[12];
months[0] = src["Jan"];
...
return months;
}
AutoMapper似乎不支持对属性进行“点画”或对数组进行索引
如果您想完全内联,可以这样做
.ForMember(dest => dest.Months, opt => opt.MapFrom(src => new int[]
{
(int)src["Jan"], (int)src["Feb"], ...
}))
你需要这样做
.ForMember(dest => dest.Months, opt => opt.MapFrom(src => MapFromRow(src)))
你有什么办法
int[] MapFromRow(DataRow src)
{
int months = new int[12];
months[0] = src["Jan"];
...
return months;
}
AutoMapper似乎不支持对属性进行“点画”或对数组进行索引
如果您想完全内联,可以这样做
.ForMember(dest => dest.Months, opt => opt.MapFrom(src => new int[]
{
(int)src["Jan"], (int)src["Feb"], ...
}))
谢谢,但对于内联解决方案,它抱怨src[“.”无法将对象转换为int。src是数据行,我错过了显式转换。当时没有在编译器面前。尝试更新的答案。是的,我想,我同意你的第一个解决方案,谢谢!谢谢,但对于内联解决方案,它抱怨src[“.”无法将对象转换为int。src是数据行,我错过了显式转换。当时没有在编译器面前。尝试更新的答案。是的,我想,我同意你的第一个解决方案,谢谢!