AutoMapper игнорирует поля того же типа, что и находятся в IMapFrom
Есть два типа:
public class Comment
{
public long Id { get; set; }
public long CommentSetId { get; set; }
public CommentSet CommentSet { get; set; }
public long? ReplyToId { get; set; }
public Comment ReplyTo { get; set; }
public ICollection<Comment> Children { get; set; }
public string Text { get; set; }
public long LikeSetId { get; set; }
public LikeSet LikeSet { get; set; }
public bool Archived { get; set; }
public CommentsTypes CommentType { get; set; }
}
public class CommentDto : IMapFrom<Comment>
{
public long Id { get; set; }
public string Text { get; set; }
public CommentsTypes CommentType { get; set; }
public DateTime Created { get; set; }
public bool Archived { get; set; }
public long CommentSetId { get; set; }
public TicketDto Ticket { get; set; }
public ContentPageDto ContentPage { get; set; }
public NewsDto News { get; set; }
public IdeaDto Idea { get; set; }
public BillboardDto Billboard { get; set; }
public EmployeeWithAvaAndPositionDto CreatedBy { get; set; }
public ICollection<CommentDto> Children { get; set; }
public CommentDto ReplyTo { get; set; }
public void Mapping(Profile profile)
{
profile.CreateMap<Comment, CommentDto>()
.ForMember(d => d.Ticket, s => s.MapFrom(src => src.CommentSet.Ticket))
.ForMember(d => d.ContentPage, s => s.MapFrom(src => src.CommentSet.ContentPage))
.ForMember(d => d.News, s => s.MapFrom(src => src.CommentSet.News))
.ForMember(d => d.Idea, s => s.MapFrom(src => src.CommentSet.Idea))
.ForMember(d => d.Billboard, s => s.MapFrom(src => src.CommentSet.Billboard));
}
И запрос к бд:
var groupedByParentComments = (await _ctx.Comments
.Include("CreatedBy")
.Include("CreatedBy.Avatars")
.Include("CreatedBy.Company")
.Include("ReplyTo")
.Include("ReplyTo.CreatedBy")
.Include("CommentSet")
.Include("CommentSet.Billboard")
.Include("CommentSet.ContentPage")
.Include("CommentSet.Idea")
.Include("CommentSet.Ticket")
.Include("CommentSet.News")
.Include(prop => prop.CommentSet.ContentPage.PageNode)
.Where(c => c.ReplyTo != null)
.ProjectTo<CommentDto>(_mapper.ConfigurationProvider)
.ToListAsync());
Проблема в том, что на поле CommentDto.ReplyTo не мапится поле из целевой сущности Comment.ReplyTo. С чем это может быть связано?
Правило для этого поля в методе .ForMember(...) тоже не работает.