从List <expression <func <t1,object =“”>&gt;&gt; </expression <func <t1>中自动映射到IEnumerable

时间:2013-04-19 14:27:46

标签: c# automapper

我目前使用代码

来映射来自匿名类型的地图
Mapper.CreateMap<T, CBoxItem>()
   .ForMember(m => m.Prop1, x => x.MapFrom(Prop1Source.Compile()));

 //followed by
 Mapper.Map(src, new List<CBoxItem>)

 //where  Prop1Source= Expression<Func<T, object>>

我想从道具来源为多个专业人士做这件事 - 以下也适用

 Mapper.CreateMap<T, ListCboxItem>()
        .ForMember(m => m.Prop1, x => x.MapFrom(Prop1Source.Compile()));
        .ForMember(m => m.Prop2, x => x.MapFrom(Prop2Source.Compile()));

当我要映射PropXSource = List<Expression<Func<T1, object>>>并且目标属性为IEnumerable时,我遇到了问题。我有点卡在那里。

我想迭代表达式并将表达式结果中的映射添加到ienumerable属性中。

1 个答案:

答案 0 :(得分:0)

不是一个很好的答案,但更容易不使用automapper来实现更复杂的可数字化。只需使用嵌套为每个循环手动复制它。

所以,为了回答我的问题,据我所知,不建议在这种情况下使用automapper。我最终使用嵌套循环手动将属性从T复制到ListCboxItem