Raccolte nested dell’autore automatico C #

Ho un modello semplice come questo:

public class Order{ public int Id { get; set; } ... ... public IList OrderLines { get; set; } } public class OrderLine{ public int Id { get; set; } public Order ParentOrder { get; set; } ... ... } 

Quello che faccio con Automapper è questo:

  Mapper.CreateMap(); Mapper.CreateMap(); Mapper.AssertConfigurationIsValid(); 

Genera un’eccezione che dice: “La proprietà OrderLineDtos in OrderDto non è mappata, aggiungi mapping personalizzata …” Poiché utilizziamo una syntax personalizzata nel nostro dominio e nel nostro DomainDto, come posso specificare che la raccolta OrderLineDtos in OrderDto corrisponde a Ordine in ordine?

Grazie

Funziona in questo modo:

  Mapper.CreateMap() .ForMember(dest => dest.OrderLineDtos, opt => opt.MapFrom(src => src.OrderLines)); Mapper.CreateMap() .ForMember(dest => dest.ParentOrderDto, opt => opt.MapFrom(src => src.ParentOrder)); Mapper.AssertConfigurationIsValid(); 

Le collezioni nidificate funzionano, a condizione che i nomi corrispondano. Nei tuoi DTO, hai il nome della tua raccolta come “OrderLineDtos”, ma nell’object Order, è solo “OrderLines”. Se si rimuove la parte “Dtos” dei nomi delle proprietà OrderLineDtos e ParentOrderDto, dovrebbe corrispondere a tutti.