ForMember 方法
时间: 2024-01-16 07:04:07 浏览: 23
ForMember 方法通常用于映射实体类中的属性到一个 DTO (数据传输对象) 中。在一个实体类中,可能会存在一些不必要或不想要的属性,但是在传输数据时,只需要特定的一些属性。此时,使用 ForMember 方法可以将实体类中的属性映射到 DTO 中。
例如,在使用 AutoMapper 库将实体类映射到 DTO 时,可以使用 ForMember 方法来指定映射规则。以下是一个示例:
```csharp
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Order, OrderDto>()
.ForMember(dest => dest.CustomerName,
opt => opt.MapFrom(src => $"{src.Customer.FirstName} {src.Customer.LastName}"))
.ForMember(dest => dest.OrderTotal,
opt => opt.MapFrom(src => src.Items.Sum(item => item.Price * item.Quantity)));
});
var order = new Order
{
Id = 1,
Customer = new Customer { FirstName = "John", LastName = "Doe" },
Items = new List<OrderItem>
{
new OrderItem { ProductName = "Product 1", Price = 10, Quantity = 2 },
new OrderItem { ProductName = "Product 2", Price = 5, Quantity = 3 }
}
};
var mapper = config.CreateMapper();
var orderDto = mapper.Map<OrderDto>(order);
```
在上面的示例中,我们使用 ForMember 方法将实体类 Order 中的 Customer.FirstName 和 Customer.LastName 属性映射到 OrderDto 中的 CustomerName 属性,并将 Order.Items 中的 Price 和 Quantity 属性相乘再求和,得到 OrderDto 中的 OrderTotal 属性。
值得注意的是,ForMember 方法是 AutoMapper 库中的方法。在其他的映射库中,可能会使用不同的方法名或方法签名,但是它们的作用都是相似的。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)