c# - 自动映射器 : Max graph depth

标签 c# automapper-3

我有以下与列表相关的实体:

国家 -> 地区 -> 自治市 -> 街道

当我将一个 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/

相关文章:

c# - 给定 10 个函数 y=a+bx 和 1000 个四舍五入为整数的 (x,y) 数据点,如何导出 10 个最佳 (a,b) 元组?

C# QuickSort 太慢

c# - 如何使用 JsonConvert 反序列化此 JSON?

c# - Automapper - 两种特定类型之间的高效映射和检查映射

c# - 如何: rename method return type (C#, Visual Studio)

c# - 使用自动映射器对对象层次结构进行非规范化

c# - 如何使用 AutoMapper 从可枚举(或数组)列表属性映射到列表?

Automapper,将单个目标属性映射为多个源属性的串联

c# - 将数据表复制为另一个数据表中的列