C# Automapper:映射集合并传递参数
我试图将一个实体映射到另一个实体,该实体具有一个附加字段C# Automapper:映射集合并传递参数,c#,automapper,C#,Automapper,我试图将一个实体映射到另一个实体,该实体具有一个附加字段 Group { int Id; } GroupExtended { int Id; string Description; } 所以我在循环中进行映射: foreach (var group in groups) { var result = mapper.Map<Group, GroupExtended>(group, opt => op
Group {
int Id;
}
GroupExtended {
int Id;
string Description;
}
所以我在循环中进行映射:
foreach (var group in groups)
{
var result = mapper.Map<Group, GroupExtended>(group,
opt => opt.AfterMap((src, dest) => dest.Description = someValue));
}
是否可以映射整个IEnumerable,并且仍然传递值?
我试过这个:
var result = mapper.Map<List<GroupExtended>>(groups,
opt => opt.AfterMap((src, dest) => dest.Description = someValue));
但是它在dest上有一个错误。Description:'object'不包含Description的定义是的,可以映射整个集合并仍然传递值。正如你在原始帖子上的评论所指出的,使用a可能是首选。如果您仍然喜欢使用AfterMap,您可以执行以下操作,记住在本例中,您的源和目标是集合而不是单个项目:
var result = mapper.Map<List<Group>, List<GroupExtended>>(groups,
opt => opt.AfterMap((src, dest) =>
{
foreach (var i in dest)
{
i.Description = "someValue";
}
}));
您不应该使用AfterMap,应该为该属性使用自定义值解析器。您可以将参数传递给该解析器。@LucianBargaoanu您可以演示如何使用自定义解析器吗?