在 AutoMapper 中,我们可以使用 ForMember
方法来映射外键返回值。以下是一个示例代码,演示了如何从外键返回值。
假设我们有两个实体类 Order
和 Customer
,它们之间有一个外键关系。Order
类有一个 CustomerId
属性,它存储了对应的 Customer
实体的主键。
public class Order
{
public int OrderId { get; set; }
public int CustomerId { get; set; }
public Customer Customer { get; set; }
// 其他属性...
}
public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
// 其他属性...
}
public class OrderDto
{
public int OrderId { get; set; }
public string CustomerName { get; set; }
// 其他属性...
}
我们想要将 Order
实体映射到 OrderDto
DTO 类,同时将 Customer
实体的 Name
属性赋值到 OrderDto
的 CustomerName
属性。在这种情况下,我们可以使用 ForMember
方法来进行配置。
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap()
.ForMember(dest => dest.CustomerName, opt => opt.MapFrom(src => src.Customer.Name));
});
var mapper = config.CreateMapper();
var order = new Order { OrderId = 1, CustomerId = 1, Customer = new Customer { CustomerId = 1, Name = "John Doe" } };
var orderDto = mapper.Map(order);
Console.WriteLine(orderDto.CustomerName); // 输出: John Doe
在上面的示例中,我们通过 ForMember
方法来配置将 src.Customer.Name
映射到 dest.CustomerName
。这样,当我们使用 AutoMapper 进行映射时,orderDto.CustomerName
将自动设置为 order.Customer.Name
的值。
希望这个示例能帮助到你!