Automapper-Projectingmultiplepropertiesfromconditionallyselectedlist
创始人
2024-09-23 10:00:47
0

在使用Automapper进行属性映射时,有时我们需要根据某些条件从一组属性中选择并映射多个属性。下面是一种解决方案,使用条件运算符和ForAllMembers方法:

首先,定义一个映射配置类,其中包含一个条件函数和对应的属性映射:

public class MyMappingProfile : Profile { public MyMappingProfile() { CreateMap() .ForAllMembers(options => { options.PreCondition((src, dest, srcMember) => srcMember != null); options.Condition((src, dest, srcMember, destMember) => destMember == null); });

    //根据条件映射属性
    CreateMap()
        .ForAllMembers(options =>
        {
            options.PreCondition((src, dest, srcMember) => srcMember != null);
            options.Condition((src, dest, srcMember, destMember) => destMember == null);
            options.MapFrom(src => src.SomeCondition ? src.Property1 : src.Property2);
        });
}

}

在上面的映射配置类中,我们在映射前调用PreCondition方法,以跳过空属性。然后使用Condition方法,以跳过已有目标属性的属性映射。最后使用MapFrom方法,通过一个条件运算符来选择需要映射的属性。

接下来,我们可以将上述映射配置类注册到Automapper中,并使用Map方法进行属性映射:

var mapperConfiguration = new MapperConfiguration(cfg => { cfg.AddProfile(new MyMappingProfile()); });

var mapper = mapperConfiguration.CreateMapper();

var source = new SourceObject { Property1 = "value1", Property2 = "value2", SomeCondition = true }; var destination = mapper.Map(source);

在上述示例中,我们使用Automapper将SourceObject的属性映射到DestinationObject中,并通过SomeCondition条件选择了要映射的属性。

相关内容

热门资讯

七分钟实锤!德州ai机器人(n... 七分钟实锤!德州ai机器人(nzt德州)都是是有挂(详细辅助科技教程)德州ai机器人软件透明挂微扑克...
9分钟实锤!德扑之星猫腻(we... 9分钟实锤!德扑之星猫腻(wepower德州)确实存在有挂(详细辅助可靠教程)1、起透看视 德扑之星...
第3分钟实锤!智星德州菠萝(德... 第3分钟实锤!智星德州菠萝(德州扑克)都是有挂(详细辅助细节揭秘)智星德州菠萝软件透明挂微扑克wpk...
6分钟实锤!德州ai人工智能(... 6分钟实锤!德州ai人工智能(德州wepower)原来真的有挂(详细辅助专业教程)1、德州ai人工智...
九分钟实锤!德州ai辅助软件(... 九分钟实锤!德州ai辅助软件(wepower德州)确实有挂(详细辅助微扑克教程)1、上手简单,内置详...
八分钟实锤!德州AI智能辅助机... 八分钟实锤!德州AI智能辅助机器人(来玩德州app)确实是有挂(详细辅助安装教程)1、八分钟实锤!德...
一分钟实锤!德州之星插件(德州... 一分钟实锤!德州之星插件(德州扑克)本来有挂(详细辅助教你攻略);1、德州之星插件透视辅助简单,德州...
第8分钟实锤!德扑ai智能(手... 第8分钟实锤!德扑ai智能(手机德州)其实存在有挂(详细辅助必赢教程)1、打开软件启动之后找到中间准...
9分钟实锤!德州之星有外挂(德... 9分钟实锤!德州之星有外挂(德扑)真是真的是有挂(详细辅助攻略教程)1、任何德州之星有外挂ai辅助神...
第6分钟实锤!智星德州菠萝(来... 第6分钟实锤!智星德州菠萝(来玩德州app)果然是真的有挂(详细辅助细节揭秘);1、任何智星德州菠萝...