当我在MediatR中使用Automapper时,我遇到了麻烦。我有一个OrderCommand类,如:
public class OrderCommand : IRequest<uint>
{
public uint CountryId { get; set; }
public List<OrderRequest> Orders { get; set; }
}
public class OrderRequest
{
public uint NumberItems { get; set; }
public double? Width { get; set; }
public double? Height { get; set; }
public double? Length { get; set; }
public string UserComment { get; set; }
}我有OrderDto,就像:
public class OrderDto
{
public uint Id { get; set; }
public string Note { get; set; }
public string Price { get; set; }
public uint? PackageId { get; set; }
public uint? CountryId { get; set; }
public byte Status { get; set; }
public virtual PackageDto Package { get; set; }
}PackageDto喜欢:
public class PackageDto
{
public uint? NumberItems { get; set; }
public double? Weight { get; set; }
public double? Height { get; set; }
public double? Length { get; set; }
public string UserComment { get; set; }
}那么,当我试图创建订单时,如何将OrderCommand的这些顺序映射到PackageDto of OrderDto?我对这种情况有点困惑。
发布于 2022-09-26 01:30:01
您应该在OrderRequest和OrderDto之间创建一个映射。
CreateMap<OrderRequest, OrderDto>()
查看以下文章:这篇文章是因为您需要映射到嵌套属性(PackageDto) https://docs.automapper.org/en/stable/Nested-mappings.html
这是因为您正在映射数组https://docs.automapper.org/en/stable/Lists-and-arrays.html。
至于调解员,这里没有什么特别之处。我要提到的唯一一点是,永远不要将该命令映射到a dto,命令是命令,而不是您域中的实体。
此外,除非您正在编写不安全的代码,否则使用uint是不明智的。坚持整数或长。
https://stackoverflow.com/questions/73847848
复制相似问题