使用AutoMapper将多个属性映射为一个

时间:2019-03-29 21:25:48

标签: .net-core automapper

说我有以下实体:

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用作{{1} }属性和Fr属性的MemberNl。”

我怀疑是否有明显的方法可以使用AutoMapper做到这一点,我在寻找这个问题时是对实现此目标的最佳方法的看法。

0 个答案:

没有答案