C# 具有嵌套1:M,M:1关系的自动映射
我有这样的关系: 一对多:订单详细信息 多对一:OrderDetails产品 我的模型:C# 具有嵌套1:M,M:1关系的自动映射,c#,.net,automapper,C#,.net,Automapper,我有这样的关系: 一对多:订单详细信息 多对一:OrderDetails产品 我的模型: public class Order { public ICollection<OrderDetail> OrderDetails {get; set;} } public class OrderDetails { public Order Order { get; set; } public Product Product {get; set;} } public class
public class Order
{
public ICollection<OrderDetail> OrderDetails {get; set;}
}
public class OrderDetails
{
public Order Order { get; set; }
public Product Product {get; set;}
}
public class Product
{
public ICollection<OrderDetail> OrderDetails { get; set; }
}
如果我的DTO如下所示:
public class OrderDetailsResponse
{
.....
public Order Order { get; set; }
}
如何配置AutoMapper来实现这一点?
如有任何提示或建议,将不胜感激
谢谢。如果您的实体设置正确,AutoMapper应该会处理该场景。我注意到的第一件事是,你可能对人际关系不是很了解。查看此示例了解详细信息 完成正确的模型设置后,以下一行就足够了
public AutoMapperProfile()
{
CreateMap<Order, OrderDetailsResponse>();
}
public AutoMapperProfile()
{
CreateMap();
}
你的模型应该是
public class Order
{
// Maybe some more properties
public ICollection<OrderDetail> OrderDetails {get; set;}
}
public class OrderDetails
{
// Maybe some more properties
public Product Product {get; set;}
}
public class Product
{
// Maybe some more properties
// You do not need anything here.
}
公共类秩序
{
//也许还有更多的财产
公共ICollection OrderDetails{get;set;}
}
公共类OrderDetails
{
//也许还有更多的财产
公共产品产品{get;set;}
}
公共类产品
{
//也许还有更多的财产
//你不需要任何东西。
}
在这里,您可以通过两种方式看到模型之间定义的关系。
现在,你的DTO可能是
public class OrderDetailsResponse
{
// Maybe some more properties
public ICollection<OrderDetail> OrderDetails { get; set; }
}
公共类OrderDetails响应
{
//也许还有更多的财产
公共ICollection OrderDetails{get;set;}
}
public class OrderDetailsResponse
{
// Maybe some more properties
public ICollection<OrderDetail> OrderDetails { get; set; }
}