Сопоставить несколько свойств в одном с AutoMapper - PullRequest
0 голосов
/ 30 марта 2019

Скажем, у меня есть следующая сущность:

public class FooEntity
{
    public string NameFr { get; set; }
    public string NameNl { get; set; }
}

И я хочу, чтобы она была преобразована в следующее dto:

public class FooDto
{
    public LocalizedStringDto Name { get; set; }
}

И LocalizedStringDto выглядит следующим образом:

public class LocalizedStringDto
{
    public string Fr { get; set; }
    public string Nl { get; set; }
}

Сейчас, чтобы сделать такое отображение, я создал профиль со следующим:

CreateMap<FooEntity, FooDto>()
    .ForMember(dest => dest.Name, opt => opt.MapFrom(src => new LocalizedStringDto { Fr = src.NameFr, Nl = src.NameNl }));

И он работает довольно хорошо.

Проблема в том, чтоУ меня много dto с разными свойствами этого типа (DescriptionFr / DescriptionNl, ThisFr / ThisNl и т. Д.), И я не хочу, чтобы меня всегда заставляли писать одни и те же строки кода для сопоставления между ними.строки и LocalizedStringDto.

То, что я ищу, это способ сказать AutoMapper: «Когда вы встречаете член типа LocalizedStringDto, создайте новый объект этого типа и используйте MemberFrдля свойства Fr и MemberNl для свойства Nl. "

Я сомневаюсь, что есть очевидный способ сделать это с AutoMapper, что я ищу с этим вопросом, это мнениео лучшем подходе для достижения этой цели.

...