gpt4 book ai didi

Automapper 和通用映射

转载 作者:行者123 更新时间:2023-12-04 22:15:18 24 4
gpt4 key购买 nike

有没有办法用 automapper 压缩它?它只是变得越来越大。

        Mapper.CreateMap<PagedResult<Headline>, PagedResult<HeadlineModel>>();
Mapper.CreateMap<PagedResult<Event>, PagedResult<EventModel>>();
Mapper.CreateMap<PagedResult<GymCourt>, PagedResult<GymCourtModel>>();
Mapper.CreateMap<PagedResult<Gym>, PagedResult<GymModel>>();
Mapper.CreateMap<PagedResult<EventGymCourt>, PagedResult<EventGymCourtModel>>();
Mapper.CreateMap<PagedResult<Division>, PagedResult<DivisionModel>>();
Mapper.CreateMap<PagedResult<Team>, PagedResult<TeamModel>>();
Mapper.CreateMap<PagedResult<DivisionTeam>, PagedResult<DivisionTeamModel>>();
Mapper.CreateMap<PagedResult<MemberTeam>, PagedResult<MemberTeamModel>>();
Mapper.CreateMap<PagedResult<TeamCoach>, PagedResult<TeamCoachModel>>();
Mapper.CreateMap<PagedResult<DivisionAsset>, PagedResult<DivisionAssetModel>>();
Mapper.CreateMap<PagedResult<EventAsset>, PagedResult<EventAssetModel>>();
Mapper.CreateMap<PagedResult<Event>, PagedResult<ApiEvent>>();
Mapper.CreateMap<PagedResult<Price>, PagedResult<PriceModel>>();
Mapper.CreateMap<PagedResult<DivisionPrice>, PagedResult<DivisionPriceModel>>();
Mapper.CreateMap<PagedResult<EventPrice>, PagedResult<EventPriceModel>>();
Mapper.CreateMap<PagedResult<Division>, PagedResult<ApiDivision>>();
Mapper.CreateMap<PagedResult<Data.Entities.Player>, PagedResult<PlayerModel>>();

最佳答案

您可以做的是使用扩展方法。如果添加这个类:

public static class MappingExtensions
{
public static IMappingExpression<TSrc, TDest> IncludePagedResultMapping<TSrc, TDest>(this IMappingExpression<TSrc, TDest> expression)
{
Mapper.CreateMap<PagedResult<TSrc>, PagedResult<TDest>>()
.ForMember(dest => dest.HasMoreResults, opt => opt.MapFrom(src => src.HasMoreResults))
.ForMember(dest => dest.NextPage, opt => opt.MapFrom(src => src.NextPage));

return expression;
}
}

然后您可以将分页映射作为实体的一部分包含到模型映射中,即:
Mapper.CreateMap<Headline, HeadlineModel>().IncludePagedResultMapping();
Mapper.CreateMap<Event, EventModel>().IncludePagedResultMapping();
Mapper.CreateMap<GymCourt, GymCourtModel>().IncludePagedResultMapping();
Mapper.CreateMap<Player, PlayerModel>().IncludePagedResultMapping();

关于Automapper 和通用映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com