Ich bin ein Neuling im Automapper-Framework. Ich habe eine Domain-Klasse und eine Klasse DTO wie folgt:Wie man die Zuordnungsregel angibt, wenn sich die Namen der Eigenschaften unterscheiden
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;}
}
Hinweis: Der Name der Eigenschaft „Namen“ von Employee
Klasse nicht die gleiche wie die der Eigenschaft „Fullname“ von EmployeeDto
Klasse.
Und hier ist der Code zur Karte des Employee
Objekt EmployeeDto
:
Mapper.CreateMap<Employee, EmployeeDto>(); // code line (***)
EmployeeDto dto = Mapper.Map<Employee, EmployeeDto>(employee);
Meine Frage ist: Wenn ich Employee
(Quellklasse) zu EmployeeDto
(Zielklasse) zugeordnet werden soll, wie kann ich die Zuordnung angeben Regel? Mit anderen Worten, wie soll ich mehr mit der obigen Codezeile (***) tun?
Gibt es eine Möglichkeit, es für jede Klasse global angeben, so etwas wie Präfix/Suffix Ding? Zum Beispiel habe ich eine Menge Klassen für eine Bibliothek, die jeweils die Eigenschaft "Lokalisierungen" haben. Und ich möchte sie Klassen zuordnen, deren entsprechende Eigenschaft "LocalizedName" heißt. Ist meine einzige Option, ForMember zu jeder Mapping-Konfiguration hinzuzufügen? – NickAb
gibt es keine CreateMap-Methode in Mapper-Klasse :( –
@ Navid_pdp11 ja es gibt. Sie müssen die statische Klasse Mapper keine Instanz haben –