[英]AutoMapper MaxDepth() method
在我的项目中,我与Client -> Projects
有一对多的关系。 因此,在我的一个视图中,我试图显示属于该客户端的所有项目。 所以我有一个代表所有客户端项目的IEnumerable<ProjectDetailsViewModel>
。
问题是ProjectDetailsViewModel
有一个ClientDetailsViewModel
,然后有一个IEnumerable<ProjectDetailsViewModel>
等等,创建了一个无限循环的相同实体。
这是否适合在.ForMember()上使用MaxDepth()方法? 如果是这样,我在这种情况下如何使用它,如果没有,解决方案是什么?
我在Client
上尝试过MaxDepth(1),虽然这可以防止StackOverflow异常,但它不会在该客户端的视图模型中保存任何数据。
问题是我使用AutoMapConfig
显式调用了AutoMapper:
.ForMember(x => x.Client, opt => opt.MapFrom(src =>
AutoMapper.Mapper.Map<ClientDetailsViewModel>(src.Client)))
如果我只是将其定义为:
.ForMember(x => x.Client, opt => opt.MapFrom(src => src.Client))
AutoMapper将知道在1次递归后停止,并且因为我已经有来自Client -> ClientDetailsViewModel
的地图,所以没有问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.