У меня есть приложение ASP.Net Core C#
, использующее AutoMapper
DTO
public class MovieTO
{
public int Id { get; set;}
public IEnumerable<TicketTO> Tickets { get; set;}
}
public class TicketTO
{
public string Prop1{ get; set;}
public string Prop2{ get; set;}
public string Prop3{ get; set;}
public string Prop4{ get; set;}
}
Доменный объект
public class Movie
{
public int Id { get; set;}
public IEnumerable<BasicTicket> Tickets { get; set;}
}
public class BasicTicket
{
}
public class RegularTicket : BasicTicket
{
public string Prop1{ get; set;}
public string Prop2{ get; set;}
}
public class SpecialTicket : BasicTicket
{
public string Prop3{ get; set;}
public string Prop4{ get; set;}
}
Конфигурация AutoMapper
public class AppObjectsMapper
{
private readonly IMapper _mapper;
public ObjectsMapper()
{
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<TicketTO, RegularTicket>();
cfg.CreateMap<TicketTO, SpecialTicket>();
cfg.CreateMap<MovieTO, Movie()
});
_mapper = config.CreateMapper();
}
public Movie MapToEntity(MovieTO movie)
{
if(movie.IsSpecial)
{
//#Line1
_mapper.Map<IEnumerable<TicketTO>, IEnumerable<SpecialTicket>>(movie.Tickets);
}
else
{
//#Line2
_mapper.Map<IEnumerable<TicketTO>, IEnumerable<RegularTicket>>(movie.Tickets);
}
return _mapper.Map<MovieTO, Movie>(eventDetail);
}
}
Когда преобразователь вызывается в # line1 или # line2, он выдает приведенную ниже ошибку времени выполнения.
Типы сопоставления ошибок. Типы сопоставления: IEnumerable 1 -> IEnumerable
1 System.Collections.Generic.IEnumerable 1[[TicketTO, app.DTO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] ->
System.Collections.Generic.IEnumerable
1 [[Domain.SpecialTicket, myapp.domain, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = ноль]]
Как распечатать / отобразить это?
Спасибо!