簡體   English   中英

Automapper中的名稱約定

[英]Name convention in Automapper

我知道Automapper可以自動從以下位置進行映射:

class SomeClassA 
{
    public int Id { get; set; }
    public B Member { get; set; }
}
class SomeClassB 
{
    public int Id { get; set; }
    public string Name { get; set; }
}

至:

class SomeClassADto 
{
    public int Id { get; set; }
    public int Member_Id { get; set; }
    public string Member_Name { get; set; }
} 

但是,如何使Automapper自動從我的SomeClassAD映射到SomeClassA?

世界上沒有最漂亮的東西,但是它確實起作用。 缺點是維護很麻煩,因為您需要向DTO添加屬性和更新映射所需的類。

var config = new MapperConfiguration(x =>
{
    x.CreateMap<SomeClassADto, SomeClassB>()
        .ForMember(i => i.Id, i => i.MapFrom(src => src.Member_Id))
        .ForMember(i => i.Name, i => i.MapFrom(src => src.Member_Name));
    x.CreateMap<SomeClassADto, SomeClassA>()
        .AfterMap((s, d, r) => d.Member = r.Mapper.Map<SomeClassB>(s));
});
IMapper mapper = config.CreateMapper();

var foo = mapper.Map<SomeClassA>(new SomeClassADto() { Id = 1, Member_Id = 2, Member_Name = "Name" });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM