Как повторно использовать существующую конфигурацию сопоставления при выравнивании сложного источника к месту назначения? - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь повторно использовать существующую конфигурацию сопоставления, чтобы сгладить сложный исходный объект, который объединен двумя простыми исходными объектами, конфигурация, как показано ниже:

public class Source1
{
    public int Id { get; set; }
    public string Source1Str { get; set; }
}
public class Source2
{
    public int Id { get; set; }
    public string Source2Str { get; set; }
}

public class ComplexSource
{
    public Source1 Source1 { get; set; }
    public Source2 Source2 { get; set; }
}

public class Dest
{
    public string Source1Str { get; set; }
    public string Source2Str { get; set; }
}

public class TestProfile : Profile
{
    public TestProfile()
    {
        CreateMap<Source1, Dest>();
        CreateMap<Source2, Dest>();
        CreateMap<ComplexSource, Dest>();
    }
}

, когда я пытаюсь проецировать IQueryable<ComplextSouce> На IQuerable<Dest> сопоставление не произошло:

 var dests =  (from s1 in _dbContext.Source1 
    join s2 in _dbContext.Source2 on s1.Id equals s2.Id
    select new ComplextObject
    {
        Source1 = s1,
        Source2 = s2
    }).ProjectTo<Dest>().ToList()

Кажется, что автопроизводитель не может понять, как сопоставить ComplexSource с Dest, в результате я должен настроить каждый элемент Dest для сопоставления из ComplexObject , Это настолько утомительно и ненужно, как я могу упростить эту конфигурацию отображения с как можно меньшим количеством кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...