热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#–AutoMapperMaxDepth()方法

在我的项目中,我与客户有一对多的关系–项目.因此,在我的一个视图中,我试图显示属于该客户端的所有项目.所以我有一个IEnumerable

在我的项目中,我与客户有一对多的关系 – >项目.因此,在我的一个视图中,我试图显示属于该客户端的所有项目.所以我有一个IEnumerable代表所有客户项目.

问题是ProjectDetailsViewModel有一个ClientDetailsViewModel,然后它有一个IEnumerable等等,创造出无穷无尽的相同实体循环.

这是否适合在.ForMember()上使用MaxDepth()方法?如果是这样,我在这种情况下如何使用它,如果没有,解决方案是什么?

我在客户端上尝试过MaxDepth(1),虽然这可以防止StackOverflow异常,但它不会在该客户端的视图模型中保存任何数据.

解决方法:

问题是我使用AutoMapConfig显式调用了AutoMapper:

.ForMember(x => x.Client, opt => opt.MapFrom(src =>
AutoMapper.Mapper.Map(src.Client)))

如果我只是将其定义为:

.ForMember(x => x.Client, opt => opt.MapFrom(src => src.Client))

AutoMapper将知道在1次递归后停止,因为我已经有来自客户端的地图 – > ClientDetailsViewModel没有问题.


推荐阅读
author-avatar
ao吖浩_257
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有