c#-4.0 - 嵌套列表上的 C# Automapper
问题描述
我有以下 dtos,我正在尝试使用 automapper,但不太了解如何做同样的事情,因为这是我第一次使用 automapper,任何帮助都非常感谢
string order {get;set;}
string orderType {get;set;}
List<OrderItem> Items {get;set;}
}
public class OrderItem{
string itemID {get;set;}
Price price {get;set;}
}
public class Price {
string total {get;set;}
string regular {get;set;}
}
public class request {
string order {get;set;}
string orderType {get;set;}
List<Item> Items {get;set;}
}
public class Item {
string itemID {get;set;}
string itemPrice {get;set;}
string regularPrice {get;set;}
}
I'm trying the following
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<request,requestDTO>()
.ForMember(dest => dest.order, act=>act.MapFrom(src => src.order))
.ForMember(dest => dest.orderType, act=>act.MapFrom(src => src.orderType))
})
How do I create mapping to map
**
src.item.itemID to dest.item.itemID
src.item.itemPrice to dest.item.price.total
src.item.regularPrice to dest.item.price.regular**
for all the items in my source array
解决方案
只需为和创建另一个地图,Item
如下OrderItem
所示:
cfg.CreateMap<Item, OrderItem>()
.ForPath(dest => dest.price.total, act => act.MapFrom(src => src.itemPrice))
.ForPath(dest => dest.price.regular, act =>act.MapFrom(src => src.item.regularPrice));
另请注意,映射器<request,requestDTO>
不需要任何显式ForMember
调用,因为两个对象具有相同的属性名称:
cfg.CreateMap<request,requestDTO>();
推荐阅读
- android - 分页无法正常工作 Android。它一次显示所有项目
- html - Flex 物品无法正确包裹和收缩
- python - Django 无法分配“'Pizza'”:“Order.Food_Name”必须是“Foods”实例
- android - 如何在 EditText DrawableRight 上执行点击监听?
- r - R如何将MultiLineString GeoJson文件转换为具有长列和纬度列的数据框?
- laravel - Laravel Passport 在 AuthServiceProvider 中抛出错误
- javascript - javascript 的对象通过引用传递的例外是什么?
- testing - 在 Idris 中测试证明是否合理
- python - nunique 不包括 pandas 中的一些值
- c# - 我们如何使用脚本在 prefeb(prefeb 包含两种原始类型形状)中淡入淡出 unity3