我有以下与列表相关的实体:
国家 -> 地区 -> 自治市 -> 街道
当我将一个 Country 对象映射到我的 DTO 时,AutoMapper 会自动投影我的整个图形,一直到 Streets,这是一个很好的默认设置。 在特定用例中,我只想映射根对象(国家/地区)及其直接子对象(地区)。这些地区应该有一个空的市政当局列表(或空)。
实现此目的的一种方法是创建这样的 map :
Mapper.CreateMap<Data.Country, Dto.Country>();
Mapper.CreateMap<Data.Region, Dto.Region>()
.ForMember(dest => dest.Municipalities, opt => opt.Ignore())
这意味着当将一个区域投影为根对象时,它的城市列表将被忽略。一个解决方法是为每个可能的根对象创建单独的 ConfigurationStore 对象,但这会导致很多不同的 ConfigurationStore。有没有办法告诉 AutoMapper 只映射到对象图中的某个深度?
最佳答案
是的,您可以像这样定义 map 特定的 MaxDepth
:
Mapper.CreateMap<Source, Destination>().MaxDepth(1);
更多信息: https://docs.automapper.org/en/stable/Attribute-mapping.html?highlight=maxdepth
关于c# - 自动映射器 : Max graph depth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24853361/