C# 如何使用AutoMapper将信息从一个对象中的一个对象映射到另一个对象
假设我的ASP.NETCore5项目中有3个对象类。我正在使用包AutoMapper.Extensions.Microsoft.DependencyInjection。课程包括:C# 如何使用AutoMapper将信息从一个对象中的一个对象映射到另一个对象,c#,asp.net,asp.net-core,automapper,C#,Asp.net,Asp.net Core,Automapper,假设我的ASP.NETCore5项目中有3个对象类。我正在使用包AutoMapper.Extensions.Microsoft.DependencyInjection。课程包括: public class Order { public int OrderId {get; set;} public double OrderPrice{ get; set; } public int CustomerId { get; set; } public virtual Cu
public class Order
{
public int OrderId {get; set;}
public double OrderPrice{ get; set; }
public int CustomerId { get; set; }
public virtual Customer Customer { get; set; }
}
public class Customer
{
public int CustomerId { get; set; }
public string CustomerName{ get; set; }
}
public class OrderODTO
{
public int OrderId {get; set;}
public double OrderPrice{ get; set; }
public string CustomerName{ get; set; }
}
现在,当我在Order和OrderODTO之间使用Automapper时,OrderId和OrderPrice值将被映射,但是CustomerName始终为null,即使Order对象中包含了对象customer。比如说
order
{
orderId: 1,
orderPrice: 3.99,
customerId: 2,
customer {
customerId: 2,
customerName: "Jack"
}
}
因此,如何使用Automapper将订单和客户对象映射到1个对象orderODTO?您需要设置订单和orderODTO之间的映射:
var config = new MapperConfiguration(cfg => cfg.CreateMap<Order, OrderODTO>()
.ForMember("CustomerName", opt => opt.MapFrom(src => src.Customer.CustomerName)));
var mapper = new Mapper(config);
Order order = new Order()
{
OrderId = 1,
OrderPrice = 3.99,
CustomerId = 2,
Customer = new Customer() {
CustomerId = 2,
CustomerName = "Jack"
}
};
OrderODTO orderOdto = mapper.Map<Order, OrderODTO>(order);
orderOdto
{
OrderId: 1,
OrderPrice: 3.99,
CustomerName: "Jack"
}