Недавно узнал о методе AutoMapper ProjectTo <> , поэтому я поиграл с ним.
Пока все хорошо, пока я не наткнулся на класс с несколькими свойствами одного типа, например:
public class RandomDto
{
public int Id {get;set;}
public ChildDto FirstChild {get;set;}
public ChildDto SecondChild {get;set;}
}
Кажется, что он генерирует SQL для одного дочернего отношения, а не для обоих:
SELECT CASE
WHEN [dtoRandom].[FirstChild_FK] IS NULL
THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT)
END, [t0].[Child_Description]
END, [dtoRandom].[Id]
FROM [Randoms] AS [dtoRandom]
INNER JOIN (
SELECT [s].*
FROM [Childs] AS [s]
) AS [t0] ON [dtoRandom].[FirstChild_FK] = [t0].[Id]
Я пробовал
.ProjectTo<RandomDto>(null, "FirstChild", "SecondChild")
.ProjectTo<RandomDto>(x=>x.FirstChild, x=>x.SecondChild)
и оба возвращаются с заполнением первого, второе - нулем
Не уверен, нужно ли мне устанавливать пользовательские псевдонимы или что-то для этого?