我正在为以下映射获得堆栈溢出:
Mapper.CreateMap<Parent, ParentViewModel>()
.ForMember(x => x.Children, o => o.MapFrom(x => x.Children.ConvertToChildrenViewModel()));
Mapper.CreateMap<Children, ChildrenViewModel>()
.ForMember(x => x.Parents, o => o.MapFrom(x => x.Parents.ConvertToParentViewModel()));
Run Code Online (Sandbox Code Playgroud)
我理解为什么会发生这种情况,这显然是一个无限循环.我怎么能让它在automapper中工作?我需要父母了解他们的孩子和他们的孩子,了解他们的父母.我将不得不创建另一个ViewModel用于Children.Parents不包含的Parents.Children财产?
扩展方法示例,类似于儿童:
public static IList<ParentViewModel> ConvertToParentViewModel(this IEnumerable<Parent> parents)
{
return Mapper.Map<IList<ParentViewModel>>(parents);
}
Run Code Online (Sandbox Code Playgroud)
有一个MaxDepth设置可用于递归映射.我以前从未使用它,但它可能会帮助你.您在类型映射上设置它:
Mapper.CreateMap(...).MaxDepth(5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4337 次 |
| 最近记录: |