c# - 用于嵌套项目集合的 AutoMapper
问题描述
我有以下模型:
public class Order
{
public long OrderId { get; set; }
public ICollection<Order_OrderItem> Order_OrderItems { get; set; }
}
public class Order_OrderItem
{
public long OrderId { get; set; }
public virtual Order Order { get; set; }
public int OrderItemId { get; set; }
public virtual OrderItem OrderItem { get; set; }
}
我在下面创建 DTO:
public class OrderDto
{
public long OrderId { get; set; }
public IEnumerable<OrderItemDto> OrderItems { get; set; }
}
我怎么能映射Order
到OrderDto
?
我收到以下错误:
configuration.CreateMap<Order, OrderDto>()
.ForMember(desc => desc.OrderItems,
opt => opt.MapFrom(src => src.Order_OrderItems));
我检查了其他相关问题,建议与地图属性相关,但我OrderItems
是一个集合属性。我怎么能映射它?
任何帮助,将不胜感激。
更新
更改配置如下:
configuration.CreateMap<Order_OrderItem, OrderItemDto>();
configuration.CreateMap<Order, OrderDto>()
.ForMember(desc => desc.OrderItems,
opt => opt.MapFrom(src => src.Order_OrderItems));
在检查结果时OrderItems
将OrderDto
是:null
var result = ObjectMapper.Map<OrderDto>(order);
解决方案
OrderItem
从到映射OrderItemDto
:
configuration.CreateMap<OrderItem, OrderItemDto>();
Order
从到映射OrderDto
:
configuration.CreateMap<Order, OrderDto>()
.ForMember(dest => dest.OrderItems,
opt => opt.MapFrom(src => src.Order_OrderItems.Select(o => o.OrderItem)));
推荐阅读
- typescript - 根据随机数在 Prisma ORM 中查找多行
- javascript - 如何使用jquery在输入字段的一行中创建多个显示
- tensorflow - 使用功能 API 在 Keras 中的 LSTM 输入层形状
- r - ggplot2 - 图例没有出现
- javascript - 如何使用 firebase admin sdk 将图像上传到 firebase 存储?
- powerbi - 报表不显示 Power BI 上的刷新数据 - SSAS 表格模型
- html - Angular 11 不应用具有不同状态的多个转换
- vba - 如何从 Microsoft Word for Mac 版本 16 中的剪贴板获取文本?
- python - 有没有办法使用 Python 乌龟旋转整个画布?
- python - 按下内联按钮后显示内联键盘