Automapper 嵌套关系 "back" 映射
Automapper nested relationship "back" mapping
假设我有一个嵌套的 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
将其应用到任何需要的地方。
假设我有一个嵌套的 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
将其应用到任何需要的地方。