2 votes

Les mapppeurs automatiques ne fonctionnent pas avec System.Linq

Je utilise des auto-mappers mais j'ai un problème en utilisant system.linq

using AutoMapper;
//usage de System.Linq;
using Squirrel.Api.Dtos.BoH.Corporation;
using Squirrel.Api.Dtos.Shared.Hardcoded;
using Squirrel.Api.Entities.ClientDB.Corporation;

namespace Squirrel.Api.Tasks.BoH.AutoMappers
{
    public class PopUpScreenBoHMapper : Profile
    {
        public PopUpScreenBoHMapper()
        {
            CreateMap()
                .ForMember(d => d.CompletionRuleId, o => o.MapFrom(s => s.CompletionRule.CompletionRuleId))
                .ForMember(d => d.CompletionRuleName, o => o.MapFrom(s => CompletionRuleDto.GetLocalizedName(s.CompletionRule.CompletionRuleId, s.CompletionRule.Name))
                .ForMember(d => d.CreatedUserId, o => o.MapFrom(s => s.CreatedUser.UserId))
                .ForMember(d => d.CreatedUserName, o => o.MapFrom(s => s.CreatedUser.UserName))
                .ForMember(d => d.LastModifiedUserId, o => o.MapFrom(s => s.LastModifiedUser.UserId))
                .ForMember(d => d.LastModifiedUserName, o => o.MapFrom(s => s.LastModifiedUser.UserName));    
            //CreateMap()
            //    .AfterMap((o, d) =>
            //    {
            //        d.MenuEntryRels = (o.CustomSorted
            //                   ? d.MenuEntryRels.OrderBy(x => x.PositionY).ThenBy(x => x.PositionX)
            //                   : d.MenuEntryRels.OrderBy(x => x.MenuEntryName)).ToList();
            //    });
        }
    }
}

ce code fonctionne correctement, l'identifiant de la règle de complétion est mappé mais si je supprime ces commentaires alors l'identifiant de la règle de complétion n'est pas mappé et j'obtiens 0 après le mapping

0voto

matt_lethargic Points 796
CreateMap<PopUpScreen, PopUpScreenBoHDto>()
    .ForMember(d => d.CompletionRuleId, o => o.MapFrom(s => s.CompletionRule.CompletionRuleId))
    .ForMember(d => d.CompletionRuleName, o => o.MapFrom(s => CompletionRuleDto.GetLocalizedName(s.CompletionRule.CompletionRuleId, s.CompletionRule.Name)))
    .ForMember(d => d.CreatedUserId, o => o.MapFrom(s => s.CreatedUser.UserId))
    .ForMember(d => d.CreatedUserName, o => o.MapFrom(s => s.CreatedUser.UserName))
    .ForMember(d => d.LastModifiedUserId, o => o.MapFrom(s => s.LastModifiedUser.UserId))
    .ForMember(d => d.LastModifiedUserName, o => o.MapFrom(s => s.LastModifiedUser.UserName))
    .AfterMap((o, d) =>
    {
        d.MenuEntryRels = (o.CustomSorted
                    ? d.MenuEntryRels.OrderBy(x => x.PositionY).ThenBy(x => x.PositionX)
                    : d.MenuEntryRels.OrderBy(x => x.MenuEntryName)).ToList();
    });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X