【发布时间】:2020-02-12 01:29:30
【问题描述】:
假设我有一个嵌套的 DTO,就像这样(实际上它要复杂得多):
public class OrderDTO
{
public int Id { get; set; }
public List<ItemDTO> Item { get; set; }
}
public class ItemDTO
{
public int Id { get; set; }
}
映射到:
public class Order
{
public int Id { get; set; }
public List<Item> Item { get; set; }
}
public class Item
{
public int Id { get; set; }
public Order Order { get; set; }
}
当从 OrderDTO 映射到 Order 时,我希望 Item 中的 Order 属性引用它的顺序,以使 var order = item.Order; 之类的东西成为可能。
映射时有什么方法可以做到这一点吗?另外,是否可以为我的所有嵌套映射配置它?
【问题讨论】:
-
使用
BeforeMap,您可以将父对象保存在context.Items中,然后在解析器中使用该值作为父引用。如果您尊重命名约定,您可以使用ForAllMaps将其应用到您需要的任何地方。 -
感谢您的快速回复,效果很好!愿意张贴作为答案吗?只是另一件事,我是否必须始终在调用 Map 时传递 `Action
`(或进行扩展)? -
可以,你可以做一个扩展方法,
MapWithContext。
标签: c# .net automapper