![](/img/trans.png)
[英]How to map a somewhat complex architecture with automapper and constructUsing
[英]How to map complex class with automapper
我必須為VM和GM命名空間。 兩者都有Employee類。 員工包含部門。 我想將VM.Employee映射到GM.Employee。 映射器不允許我映射部門。
class VM.Employee
{
int Id {get;set;}
int Name {get;set;}
VM.Department dept{get;set;}
}
class VM.Department
{
int Id {get;set;}
int Name {get;set;}
}
class GM.Employee
{
int Id {get;set;}
int Name {get;set;}
GM.Department dept{get;set;}
}
class GM.Department
{
int Id {get;set;}
int Name {get;set;}
}
實際上,這並不困難。 您可以按字段手動映射字段,如下所示:
Mapper.CreateMap<VM.Employee, GM.Employee>()
.ForMember(vm => vm.Department,
mapping => mapping.MapFrom(gm => gm.Department))
Mapper.CreateMap<VM.Department, GM.Department>()
.ForMember(vm => vm.SomeFieldOfVmDepartment,
mapping => mapping.MapFrom(gm => gm.SomeFieldOfGmDepartment))
.ForMember(vm => vm.AnotherField,
mapping => mapping.MapFrom(gm => gm.AnotherField))
自動映射器是基於約定的,當您映射兩個類時,它將自動匹配名稱相同的字段。 但是,當要映射的類具有不同的字段(名稱或字段數不同)時,Automapper可能無法知道您要映射到哪些字段,因此必須明確地告訴它。
您當然應該閱讀AutoMapper文檔以獲取更多信息: Automapper文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.