Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用AutoMapper将信息从一个对象中的一个对象映射到另一个对象_C#_Asp.net_Asp.net Core_Automapper - Fatal编程技术网

C# 如何使用AutoMapper将信息从一个对象中的一个对象映射到另一个对象

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

假设我的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 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"
}