Linq2SQL 클래스에서 사용하기 위해 SRC가 아닌 변수에 automapper (.net c#)를 사용합니까?

StackOverflow https://stackoverflow.com/questions/1318167

문제

나는 최근에 Automapper를 꽤 성공적으로 사용하고 있었지만 SRC에서 사용 가능한 변수에 Dest를 매핑하는 데 작은 문제가 생겼습니다 ... 예를 들어 더 잘 설명합니다. 지침 .. 모두 잘 작동하지만 이제 대상을 주문의 일부가 아닌 로컬 변수 인 ReservationNumber라는 변수에 매핑해야합니다 ... 누구 든지이 작업을 수행하는 방법을 알고 있습니까?

LINQ2SQL 클래스이므로 LINQ2SQL에서 사용하기 위해 AutomApper를 사용하여 Order에서 Reservation으로 매핑하고 있습니다.

작은 예입니다. 모든 입력에 감사드립니다.

    string reservationNumber = "1234567890"; // this is the local variable.. It will be dynamic in future..

    Mapper.CreateMap<Order, Reservation>()
            .ForMember(dest => dest.ReservationNumber, reservationNumber // THIS OBVIOUSLY FAILS)
            .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.name))
            .ForMember(dest => dest.Surname1, opt => opt.MapFrom(src => src.surname1))
            .ForMember(dest => dest.Surname2, opt => opt.MapFrom(src => src.surname2))
            .ForMember(dest => dest.Email, opt => opt.MapFrom(src => src.email))
            .ForMember(dest => dest.Telephone, opt => opt.MapFrom(src => src.telephone))
     ;
            // Perform mapping
            Reservation reservation = Mapper.Map<Order, Reservation>(order);
도움이 되었습니까?

해결책

이 시도:

Mapper.CreateMap<Order, Reservation>()
    .ForMember(dest => dest.ReservationNumber, opt => opt.MapFrom(src => reservationNumber));

해당 MAPFROM 옵션은 모든 기능을 취합니다. 다른 옵션은 기존 대상 개체에 매핑하는 것입니다. 예약 번호는 이미 있습니다. 또는 사용자 정의 서비스 또는 무언가를 사용하여 예약 번호를 가져와야하는 경우 사용자 정의 값 리졸버 (ResolveSusing)를 사용하십시오.

Createmap 호출은 AppDomain당 한 번만 발생하면되므로 다른 두 가지 옵션을 확인하고 귀하의 요구에 맞는지 확인할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top