Sono un principiante del framework Automapper. Ho una classe di dominio e una classe DTO come segue:Come specificare la regola di mappatura quando i nomi delle proprietà differiscono
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;}
}
Nota: Il nome della proprietà "Nome" di Employee
classe non è la stessa di quella dei beni "FullName" di EmployeeDto
di classe.
Ed ecco il codice per mappare il Employee
oggetto da EmployeeDto
:
Mapper.CreateMap<Employee, EmployeeDto>(); // code line (***)
EmployeeDto dto = Mapper.Map<Employee, EmployeeDto>(employee);
La mia domanda è: Se voglio mappare Employee
(classe di origine) per EmployeeDto
(classe di destinazione), come posso specificare la mappatura regola? In altre parole, come dovrei fare di più con la riga di codice (***) sopra?
C'è un modo per specificare globalmente per qualsiasi classe, qualcosa di simile a cosa prefisso/suffisso? Ad esempio, ho un sacco di classi per una libreria che ha proprietà "Localizzazioni" ciascuna. E voglio mapparli alle classi in cui la proprietà corrispondente è chiamata "LocalizedName". La mia unica opzione è aggiungere ForMember a ciascuna configurazione di mapping? – NickAb
non esiste alcun metodo CreateMap nella classe Mapper :( –
@ Navid_pdp11 sì sì. È necessario che la classe statica Mapper non sia un'istanza –