Automapper-중첩 된 개체 / 컬렉션을 매핑 할 수 없습니다.

나폴레옹 아이크 존스

여기와 automapper 위키에서 수많은 예제를 시도했지만 여전히이 문제를 해결할 수 없습니다. 중첩 된 개체와 중첩 된 컬렉션을 매핑하려고하는데 내가 무엇을하든 항상 오류가 발생합니다. 컨트롤러가 데이터를 반환하도록 할 수있는 유일한 방법은 두 속성에 대해 option.ignore를 설정하는 것입니다.

매핑하려는 비즈니스 계층 개체입니다.

public class LocationBL
{
    public int Id { get; set; }        
    public string Name { get; set; }
    public string Address { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string Zipcode { get; set; }
    public string Country { get; set; }

    public DbGeography Coordinates { get; set; }

    public int LocationType_Id { get; set; }

    public virtual LocationTypeBL LocationType { get; set; }

    public virtual ICollection<SportBL> Sports { get; set; }
}

public class LocationTypeBL
{
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<LocationBL> Locations { get; set; }
}
public class SportBL
{

    public int Id { get; set; }

    public string Name { get; set; }

    public virtual ICollection<LocationBL> Locations { get; set; }

    public virtual ICollection<UserBL> Users { get; set; }
}

데이터 영역 개체입니다.

public class Location : EntityData
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [ForeignKey("Company")]
    public int? CompanyId { get; set; }

    [Required]
    public string Name { get; set; }
    public string Address { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string Zipcode { get; set; }
    public string Country { get; set; }
    [Required]
    public DbGeography Coordinates { get; set; }
    [ForeignKey("LocationType")]
    public int LocationType_Id { get; set; }

    public virtual LocationType LocationType { get; set; }

    public virtual ICollection<Sport> Sports { get; set; }
    public virtual Company Company { get; set; }
}

public class LocationType : EntityData
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Location> Locations { get; set; }
}

public class Sport : EntityData
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }

    public virtual ICollection<Location> Locations { get; set; }

    public virtual ICollection<User> Users { get; set; }
}

이것은 내 매핑 프로필입니다.

public class LocationProfile : Profile
{
    public LocationProfile()
    {
        CreateMap<LocationType, LocationTypeBL>();
        CreateMap<LocationTypeBL, LocationType>();
        CreateMap<Location, LocationBL>()
            .ForMember(Dest => Dest.Sports,
            opt => opt.MapFrom(src => src.Sports))
            .ForMember(Dest => Dest.LocationType,
            opt => opt.MapFrom(src => src.LocationType));

        CreateMap<LocationBL, Location>()
            .ForMember(Dest => Dest.Sports,
            opt => opt.MapFrom(src => src.Sports))
            .ForMember(Dest => Dest.LocationType,
            opt => opt.MapFrom(src => src.LocationType));




    }
}

업데이트 ******* 이것은 내 LocationType 프로필입니다.

public class LocationTypeProfile : Profile
{
    public LocationTypeProfile()
    {
        CreateMap<LocationType, LocationTypeBL>();
        CreateMap<LocationTypeBL, LocationType>();
    }
}

이것은 내 스포츠 프로필입니다

    public class SportProfile : Profile
{
    public SportProfile()
    {
        CreateMap<Sport, SportBL>();
        CreateMap<SportBL, Sport>();
    }
}

중요한지는 확실하지 않지만 이것은 Autofac, WebAPI 및 OWIN을 사용하는 Azure Mobile App 백엔드입니다. AutoMapper와 Autofac을 사용하는 것은 이번이 처음이므로 아직 배우는 중이므로 용서해주십시오. 프로필이 모두 등록되어 있고 중첩 된 개체를 무시하도록 설정하면 컨트롤러가 적절한 데이터를 반환합니다.

미리 감사드립니다 !!!

코딩 Yoshi

거의 다 왔습니다. 중첩 된 개체를 매핑하는 방법도 AutoMapper에 지시해야합니다. 당신은에 대한지도를 작성해야합니다 그래서 Sport에를 SportBL그 반대도합니다.

// use ForMember if needed, but you know how to do that so I won't
// show it.
CreateMap<Sport, SportBL>(); 

그러면 AutoMapper는 중첩 된 복합 유형을 매핑 할 때 해당 매핑을 사용합니다.

또 다른 참고 사항은 클래스에 동일한 속성이있는 경우 ReverseMap()메서드를 호출하기 만하면 양방향 매핑이 수행됩니다.

그래서이 대신 :

CreateMap<LocationType, LocationTypeBL>();
CreateMap<LocationTypeBL, LocationType>();

동일한 작업을 수행하기 위해 이렇게 할 수 있습니다.

Mapper.CreateMap<LocationType, LocationTypeBL>().ReverseMap();

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Solidity, Solc Error : (중첩 된) 매핑을 포함하는 구조체를 구성 할 수 없습니다.

분류에서Dev

중첩 된 Javascript 개체에 액세스 할 수 없습니다.

분류에서Dev

Firebase-컬렉션 컬렉션을 중첩 할 수 없습니다.

분류에서Dev

잘못된 RKResponseDescriptor-중첩 된 개체를 찾았지만 매핑 할 수 없음

분류에서Dev

Automapper 매핑 복잡한 중첩 개체

분류에서Dev

오류에 의해 중첩 된 ienumerable 컬렉션 개체 그룹에 개체를 직접 추가하는 방법-목록을 컬렉션으로 변환 할 수 없음

분류에서Dev

Swift : 중첩 된 배열의 개체에 액세스 할 수 없습니다.

분류에서Dev

중첩 된 불변 개체의 배열에 액세스 할 수 없습니다.

분류에서Dev

중첩 된 JSON 개체를 구문 분석 할 수 없습니다.

분류에서Dev

Typescript 3.9에서 두 개의 종속 형식 매개 변수를 사용하여 중첩 된 개체를 인덱싱 할 수 없습니다.

분류에서Dev

AutoMapper 사용자 지정 형식 변환기 ITypeConverter 및 중첩 된 개체 매핑

분류에서Dev

인라인 매핑 또는 여러 .ForMember를 사용하지 않고 automapper에서 중첩 된 개체를 매핑하는 방법은 무엇입니까?

분류에서Dev

중첩 된 개체에있는 배열로 개체를 푸시 할 수 없습니다.

분류에서Dev

중첩 된 개체에서 속성을 가져올 수 없습니다.

분류에서Dev

JSON에서 중첩 된 개체 목록을 가져올 수 없습니다.

분류에서Dev

중첩 된 JSON을 파싱 할 수 없습니다.

분류에서Dev

중첩 된 속성을 저장할 수 없습니다.

분류에서Dev

객체에 문자열을 매핑 할 수 없습니다

분류에서Dev

중첩 된 개체에 대한 함수 환경에서 개체를 찾을 수 없습니다.

분류에서Dev

Automapper는 상속 된 개체를 자식에 매핑합니다.

분류에서Dev

Automapper를 사용하여 다단계 중첩 객체 매핑

분류에서Dev

그것은 글로벌 경로로 스프링 MVC에서 중첩 된 매핑을 매핑 할 수 있습니까?

분류에서Dev

매개 변수화 된 개체를 변수로 확인할 수 없습니다.

분류에서Dev

AutoMapper 중첩 매핑

분류에서Dev

명명 된 매개 변수에서 분할되지 않는 Dapper 다중 매핑

분류에서Dev

매핑없이 ElasticSearch에서 중첩 된 문서를 인덱싱 할 수 있습니까?

분류에서Dev

엔터티 프레임 워크에 중첩 된 개체를 저장할 수 없습니다.

분류에서Dev

항목 쿼리에 중첩 된 목록의 개체를 포함 할 수 없습니다.

분류에서Dev

Automapper가 갑자기 중첩 된 개체를 만듭니다.

Related 관련 기사

  1. 1

    Solidity, Solc Error : (중첩 된) 매핑을 포함하는 구조체를 구성 할 수 없습니다.

  2. 2

    중첩 된 Javascript 개체에 액세스 할 수 없습니다.

  3. 3

    Firebase-컬렉션 컬렉션을 중첩 할 수 없습니다.

  4. 4

    잘못된 RKResponseDescriptor-중첩 된 개체를 찾았지만 매핑 할 수 없음

  5. 5

    Automapper 매핑 복잡한 중첩 개체

  6. 6

    오류에 의해 중첩 된 ienumerable 컬렉션 개체 그룹에 개체를 직접 추가하는 방법-목록을 컬렉션으로 변환 할 수 없음

  7. 7

    Swift : 중첩 된 배열의 개체에 액세스 할 수 없습니다.

  8. 8

    중첩 된 불변 개체의 배열에 액세스 할 수 없습니다.

  9. 9

    중첩 된 JSON 개체를 구문 분석 할 수 없습니다.

  10. 10

    Typescript 3.9에서 두 개의 종속 형식 매개 변수를 사용하여 중첩 된 개체를 인덱싱 할 수 없습니다.

  11. 11

    AutoMapper 사용자 지정 형식 변환기 ITypeConverter 및 중첩 된 개체 매핑

  12. 12

    인라인 매핑 또는 여러 .ForMember를 사용하지 않고 automapper에서 중첩 된 개체를 매핑하는 방법은 무엇입니까?

  13. 13

    중첩 된 개체에있는 배열로 개체를 푸시 할 수 없습니다.

  14. 14

    중첩 된 개체에서 속성을 가져올 수 없습니다.

  15. 15

    JSON에서 중첩 된 개체 목록을 가져올 수 없습니다.

  16. 16

    중첩 된 JSON을 파싱 할 수 없습니다.

  17. 17

    중첩 된 속성을 저장할 수 없습니다.

  18. 18

    객체에 문자열을 매핑 할 수 없습니다

  19. 19

    중첩 된 개체에 대한 함수 환경에서 개체를 찾을 수 없습니다.

  20. 20

    Automapper는 상속 된 개체를 자식에 매핑합니다.

  21. 21

    Automapper를 사용하여 다단계 중첩 객체 매핑

  22. 22

    그것은 글로벌 경로로 스프링 MVC에서 중첩 된 매핑을 매핑 할 수 있습니까?

  23. 23

    매개 변수화 된 개체를 변수로 확인할 수 없습니다.

  24. 24

    AutoMapper 중첩 매핑

  25. 25

    명명 된 매개 변수에서 분할되지 않는 Dapper 다중 매핑

  26. 26

    매핑없이 ElasticSearch에서 중첩 된 문서를 인덱싱 할 수 있습니까?

  27. 27

    엔터티 프레임 워크에 중첩 된 개체를 저장할 수 없습니다.

  28. 28

    항목 쿼리에 중첩 된 목록의 개체를 포함 할 수 없습니다.

  29. 29

    Automapper가 갑자기 중첩 된 개체를 만듭니다.

뜨겁다태그

보관