【发布时间】:2019-04-04 20:36:54
【问题描述】:
我正在尝试将一个列表映射到另一个列表,但并非我想要的所有内容都在源对象中。让我解释一下:
这是我的两个对象:
public class SourceItem
{
public int Id { get; set;}
public string Name { get; set;}
}
public class TargetItem
{
public int TargetId { get; set;}
public string TargetName { get; set;}
public int Foo { get; set; }
}
这就是我配置 Mapper 的方式:
public class MyProfile : Profile
{
public MyProfile()
{
CreateMap<SourceItem, TargetItem>()
.ForMember(dest => dest.TargetId, opt => opt.MapFrom(src => src.Id))
.ForMember(dest => dest.TargetName, opt => opt.MapFrom(src => src.Name));
}
}
当我这样做时......
var targets = Mapper.Map<List<SourceItem>, List<TargetItem>>(sourceItems);
...targets 列表的对象将 Foo 设置为 0。显然。我想要做的是也初始化Foo(使用参数)。像这样:
fooParameter = 321;
List<TargetItem> targets = Mapper.Map<List<SourceItem>, List<TargetItem>>(sourceItems);
foreach(var target in targets)
{
target.Foo = fooParameter;
}
可以使用Mapper吗?
提前致谢!
【问题讨论】:
标签: c# .net mapping automapper mapper