Với các nguồn sau:Automapper và lớp thứ bậc
public class SourceBase { public string TheString { get; set; } }
public class SourceDerived : SourceBase { }
và các điểm đến:
public class DestBase { public string MyString { get; set; } }
public class DestDerived : DestBase { }
Và lập bản đồ này:
CreateMap<SourceBase, DestBase>()
.ForMember(dest => dest.MyString, o => o.MapFrom(x => x.TheString))
.Include<SourceDerived, DestDerived>();
CreateMap<SourceDerived, DestDerived>();
Mapper.AssertConfigurationIsValid(); // Exception is thrown here
Tuy nhiên, điều này mang lại một lỗi lập bản đồ nói MyString isn không được ánh xạ trên DestDerived. Đưa cái gì? Tôi có thực sự cần phải lặp lại ánh xạ cho các thuộc tính lớp cơ sở trong tất cả các kiểu có nguồn gốc (tôi có nhiều hơn một lớp con trong mã thực tế của tôi).
EDIT:
Ngoại lệ chính xác là Các thuộc tính sau 1 trên DestDerived không thể được ánh xạ: MyString. Thêm biểu thức ánh xạ tùy chỉnh, bỏ qua hoặc đổi tên thuộc tính trên DestDerived.
Lỗi chính xác là gì? –