MapsterMapper / Mapster

A fast, fun and stimulating object to object Mapper
MIT License
4.32k stars 329 forks source link

Inheritance configuration work on list Map Not Object #611

Open ShahroozAnsari opened 1 year ago

ShahroozAnsari commented 1 year ago

In this code you see

        TypeAdapterConfig<Request, RequestBaseDto>.NewConfig()
             .Include<PersonalItemRequest, PersonalItemRequestDto>()
             .Include<TrafficRequest, PersonalTrafficRequestDto>()
             .Include<OverTimeRequest, OverTimeRequestDto>()
             .Include<HourlyLeaveRequest, HourlyLeaveRequestDto>()
             .Include<DailyLeaveRequest, DailyLeaveRequestDto>();

            var resault1 = dbContext.Requests.First().Adapt<RequestBaseDto>();

            var resault2 = dbContext.Requests.ToList().Map<List<RequestBaseDto>>();

resault1 is an instance of RequestBaseDto resault2 is an instance of PersonalItemRequestDto casted on RequestBaseDto

the resaul2 is currect an is what i need But the resault 2 is not ok for me and ithink its issue

and I cant make base class RequestBaseDto abstract class.

andrerav commented 1 year ago

@ShahroozAnsari Can you re-test this with the latest release please? (7.4.0)

DocSvartz commented 1 year ago

Hello @ShahroozAnsari , list worked from Collection adapter and adapt all element in source collection to Type List<Type> destination. If result2 == list<RequestBaseDto>() and include all element from dbContext.Requests. Then the result directly corresponds to what you specified here .Map<List<RequestBaseDto>>()