自动映射器映射递归菜单树



我按照以下说明进行操作 https://www.mikesdotnetting.com/article/255/entity-framework-recipe-hierarchical-data-management

现在我正在尝试将我的实体映射到我的 dtos,这不断失败。

我看到许多与此相关的问题,但没有一个具有"干净"的映射方式。 我是这样开始的...

CreateMap<MenuItem, DTO.MenuItem>()
.ForMember(d => d.Children, opt => opt.MapFrom(src => src))
.ForMember(d => d.Parent, opt => opt.MapFrom(src => src.Parent))
.ForMember(d => d.MenuText, opt => opt.MapFrom(src => src.MenuText))
.ForMember(d => d.LinkUrl, opt => opt.MapFrom(src => src.LinkUrl))
.ForMember(d => d.MenuOrder, opt => opt.MapFrom(src => src.MenuOrder))
.ForMember(d => d.ParentMenuItemId, opt => opt.MapFrom(src => src.ParentMenuItemId))
.ForMember(d => d.MenuId, opt => opt.MapFrom(src => src.MenuId))
.ForMember(d => d.MenuItemId, opt => opt.MapFrom(src => src.MenuItemId))
.ForMember(d => d.Menu, opt => opt.MapFrom(src => src.Menu));

映射器应该如何知道要映射到哪个父元素?

任何帮助将不胜感激。

这应该可以工作(没有堆栈溢出(。请参阅 https://github.com/AutoMapper/AutoMapper/wiki/5.0-Upgrade-Guide#circular-references。还有一个 PR 待定 https://github.com/AutoMapper/AutoMapper/pull/2233。

最新更新