如何指定映射规则,当属性的名称不同(How to specify mapping rule when

2019-07-19 15:44发布

我是新手到Automapper框架。 我有一个域类和DTO类,如下所示:

public class Employee
{
   public long Id {get;set;}
   public string Name {get;set;}
   public string Phone {get;set;}
   public string Fax {get;set;}
   public DateTime DateOfBirth {get;set;}
}

public class EmployeeDto
{
   public long Id {get;set;}
   public string FullName {get;set;}
   public DateTime DateOfBirth {get;set;}
}

注:属性名称“ 名称 ”的Employee类是不一样的,即财产“ 全名 ”的EmployeeDto类。

而这里的映射代码Employee对象EmployeeDto

Mapper.CreateMap<Employee, EmployeeDto>(); // code line (***)
EmployeeDto dto = Mapper.Map<Employee, EmployeeDto>(employee); 

我的问题是:如果我要地图Employee (源类) EmployeeDto (目标类),我怎么可以指定映射规则? 换句话说,我应该怎么做多与上面的代码行(***)?

Answer 1:

没关系,我自己找到了解决办法:

Mapper.CreateMap<Employee, EmployeeDto>()
    .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name));


文章来源: How to specify mapping rule when names of properties differ
标签: c# AutoMapper