簡體   English   中英

如何使用自動映射器映射復雜的類

[英]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.

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