Я пытаюсь повторно использовать существующую конфигурацию сопоставления, чтобы сгладить сложный исходный объект, который объединен двумя простыми исходными объектами, конфигурация, как показано ниже:
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 , Это настолько утомительно и ненужно, как я могу упростить эту конфигурацию отображения с как можно меньшим количеством кода