C# 自动映射嵌套关系“;“后退”;映射

C# 自动映射嵌套关系“;“后退”;映射,c#,.net,automapper,C#,.net,Automapper,假设我有一个嵌套的DTO,如下所示(实际上要复杂得多): 公共类OrderDTO { 公共int Id{get;set;} 公共列表项{get;set;} } 公共类ItemDTO { 公共int Id{get;set;} } 这映射到: public class Order { public int Id { get; set; } public List<Item> Item { get; set; } } public class Item { pu

假设我有一个嵌套的DTO,如下所示(实际上要复杂得多):

公共类OrderDTO
{
公共int Id{get;set;}
公共列表项{get;set;}
}
公共类ItemDTO
{
公共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; }
}
公共类秩序
{
公共int Id{get;set;}
公共列表项{get;set;}
}
公共类项目
{
公共int Id{get;set;}
公共秩序{get;set;}
}
当从OrderDTO映射到Order时,我希望Item的Order属性引用它的Order,这样做类似于
var Order=Item.Order可能


映射时有什么方法可以做到这一点吗?另外,是否可以为所有嵌套映射配置该值?

使用
BeforeMap
可以将父对象保存在
上下文中。Items
然后在解析器中使用该值作为父引用。如果您遵守命名约定,则可以使用
ForAllMaps
将其应用于任何需要的地方。

使用
BeforeMap
可以将父对象保存在
上下文中。Items
然后在解析器中使用该值作为父引用。如果您尊重命名约定,您可以使用
for allmaps
将其应用到任何需要的地方。感谢您的快速回复,它非常有效!要不要贴出来作为答案?还有一件事,我是否必须在调用Map时始终传递'Action'(或进行扩展)?是的,您可以创建一个扩展方法,
MapWithContext
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; }
}