开发环境:
AutoMapper:7.0.1 NetCore:2.1
错误内容: 找到未映射的成员。在下面查看类型和成员。 添加自定义映射表达式,忽略,添加自定义解析器或修改源/目标类型 对于没有匹配的构造函数,请添加一个无参数ctor,添加可选参数,或映射所有构造函数参数
我的模特:
public partial class XsOrdersitems
{
public int Id { get; set; }
public string ParentNo { get; set; }
public string GoodsSn { get; set; }
public string Name { get; set; }
public string Barcode { get; set; }
}
我的DTO类型:
public class DTOOrderItem
{
public string OrderPaNo { get; set; }
public string OrderNo { get; set; }
public string OrderNe { get; set; }
public string OrderComm { get; set; }
}
我的映射配置:
reateMap<DTOOrderItem, XsSalesitems>()
.ForMember(d => d.Id, opt =>opt.Ignore())
.ForMember(d => d.Name, opt => { opt.MapFrom(s => s.OrderNe); })
.ForMember(d => d.GoodsSn, opt => { opt.MapFrom(s => s.OrderNo);})
.ForMember(d => d.ParentNo, opt => { opt.MapFrom(s =>s.OrderPaNo);})
.ForMember(d => d.Comment, opt => { opt.MapFrom(s => s.OrderComm); });
我尝试使用opt。 Ignore()
会忽略未配置的映射属性,但仍报告上述错误,请帮助我,谢谢您抽出宝贵时间回答我的问题。
答案 0 :(得分:0)
根据您的示例,您正在映射到错误的模型。您的CreateMap
定义是将DTOOrderItem
映射到XsSalesitems
,但是您的注释表明您想映射到XsOrderitems
。可以尝试添加具有必要的CreateMap<DTOOrderItem, XsOrderitems>()...
引用的附加.Ignore()
,您应该会很高兴。
完整的映射定义:
CreateMap<DTOOrderItem, XsOrderitems>()
.ForMember(d => d.Id, opt => opt.Ignore())
.ForMember(d => d.Name, opt => opt.MapFrom(s => s.OrderNe))
.ForMember(d => d.GoodsSn, opt => opt.MapFrom(s => s.OrderNo))
.ForMember(d => d.ParentNo, opt => opt.MapFrom(s =>s.OrderPaNo))
.ForMember(d => d.Comment, opt => opt.MapFrom(s => s.OrderComm));