2017-12-11 1 views
1

내 DTO 클래스를 기본 매핑에 매핑하려고합니다.AutoMapper throw 무시 작업이 설정되어 있어도 매핑되지 않은 속성 예외가 설정되었습니다.

매핑되지 않은 멤버가 발견 : 코드는 이런 종류의 오류가 발생합니다 이상으로

public class CategoryResource 
    { 
     public int Id { get; set; } 
     public string Code { get; set; } 
     public string Description { get; set; } 
    } 

public class Category 
    { 
     public int Id { get; set; } 
     [Required] 
     [StringLength(255)] 
     public string Code { get; set; } 
     [StringLength(255)] 
     public string Description { get; set; } 
     public ICollection<CategoryToProduct> Products { get; set; } 

     public Category() 
     { 
      Products = new Collection<CategoryToProduct>(); 
     } 
    } 

및 사용

var category = mapper.Map<CategoryResource, Category>(categoryResource); 

다음은 클래스입니다. 아래 유형 및 회원을 검토하십시오. === 무시하는 커스텀 매핑 식을 추가 사용자 지정 해결을 추가하거나 일치하는 생성자를 들어 소스/대상 유형을 수정, 인수 없음의 의 ctor 추가, 선택적 인수를 추가하거나 생성자의 모든 매개 변수지도 ========================================================================================================== ====================== CategoryResource -> 카테고리 (대상 구성원 목록)

매핑되지 않은 특성 : 제품

나는 나의 매핑 프로필을 변경 ~까지 :

CreateMap<CategoryResource, Category>() 
       .ForMember(x=>x.Products, opt => opt.Ignore()); 

하지만 여전히 같은 오류가 있습니다. 내가 여기서 잘못했는지 조언 해 주시겠습니까? 내가 이미 IIS 및 AutoMapper 버전, 즉 전체 MappingProfile 6.2의로

public class MappingProfile : Profile 
    { 
     public MappingProfile() 
     { 
      //Domain to API 
      CreateMap<Type, TypeResource>(); 
      CreateMap<Unit, UnitResource>(); 
      CreateMap<Category, CategoryResource>(); 


      //API to domain 
      CreateMap<TypeResource, Type>(); 
      CreateMap<UnitResource, Unit>(); 

      CreateMap<CategoryResource, Category>() 
       .ForMember(x=>x.Products, opt => opt.Ignore()); 
     } 
    } 
+0

속성을 하나씩 제거하여 문제의 원인이되는 범위를 좁히려 고 시도하십시오. – mjwills

+0

"CreateMap"초기화를 공유 하시겠습니까? – lucky

+0

전체 매핑 프로필을 의미합니까? 이 – wmioduszewski

답변

3

님의 댓글에서 질문에 대답하려면 6.2.2


입니다 다시 시작, AutoMapper 는 즉시에지도를 입력 생성 (here에 문서화 됨) :

Mapper.Map을 처음 호출하면 Auto 매퍼는 유형 맵 구성을 작성하고 맵핑 플랜을 컴파일합니다. 유일한 MappingProfileProducts 속성을 무시 귀하의 예제 코드에서하고있는 점을 감안

,이 MapperProfile가 등록되지 않고 있는게 틀림 없어.

사용자 정의 Profile을 등록하는 방법에 대한 자세한 내용은 Jimmy Bogard가 Integrating AutoMapper with ASP.NET Core DI을 참조하십시오. 요약하면 AutoMapper.Extensions.Microsoft.DependencyInjection 너겟 패키지를 사용하고 기본값을 사용하거나 스캔해야하는 어셈블리 목록을 제공 할 수 있습니다.

+0

으로 질문을 업데이트했습니다. @ serpent5, 지연에 대해 유감스럽게 생각합니다. 예, 실제로 MappingProfile을로드하는 데 문제가있었습니다. 포괄적 인 대답을 통해 나를 [this] (https://stackoverflow.com/a/46312663/2395747)로 데려갔습니다. 여기서 분리 된 어셈블리에서 제가 발견했습니다. 건배! – wmioduszewski

관련 문제