Automapper:如果所有子属性都为null,则将父对象设置为null
创始人
2024-09-23 17:00:18
0

在Automapper中,可以使用条件映射来实现将父对象设置为null的功能。具体解决方法如下所示:

首先,需要创建一个自定义的解析器来判断子属性是否全部为null。以下是一个示例的解析器代码:

public class AllPropertiesNullResolver : IMemberValueResolver
{
    public object Resolve(object source, object destination, object sourceMember, object destMember, ResolutionContext context)
    {
        // 遍历子属性
        var properties = sourceMember.GetType().GetProperties();
        foreach (var property in properties)
        {
            // 如果子属性有任何一个不为null,则返回原始的sourceMember
            if (property.GetValue(sourceMember) != null)
            {
                return sourceMember;
            }
        }
        
        // 如果所有子属性都为null,则返回null
        return null;
    }
}

接下来,需要在Mapping Profile中配置Automapper来使用该解析器。以下是一个示例的Mapping Profile代码:

public class MappingProfile : Profile
{
    public MappingProfile()
    {
        CreateMap()
            .ForMember(dest => dest, opt => opt.MapFrom());
    }
}

最后,在使用Automapper进行映射的地方,需要先初始化Mapper,并进行映射。以下是一个示例的使用代码:

Mapper.Initialize(cfg => cfg.AddProfile());
var source = new SourceObject();
var destination = Mapper.Map(source);

通过以上的配置和代码,当所有子属性都为null时,Automapper会将父对象设置为null。

相关内容

热门资讯

必备攻略!微乐家乡麻将自建房辅... 必备攻略!微乐家乡麻将自建房辅助app,微乐家乡麻将自建房辅助app(开挂自建房)技巧1、必备攻略!...
查到实测辅助!微信卡五星辅助器... 查到实测辅助!微信卡五星辅助器,微乐家乡麻将自建房辅助app(开挂自建房)教程1、超多福利:超高返利...
传递经验!微乐自建房辅助工具挂... 传递经验!微乐自建房辅助工具挂,微乐小程序免费黑科技(开挂自建房)技巧1、操作简单,无需微乐自建房辅...
一分钟教你!微信卡五星辅助器,... 一分钟教你!微信卡五星辅助器,微乐家乡麻将自建房辅助app(开挂自建房)插件1、这是跨平台的微乐家乡...
传递经验!微乐小程序自建房辅助... 传递经验!微乐小程序自建房辅助工具插件,微乐自建房脚本免费入口(开挂自建房)脚本传递经验!微乐小程序...
玩家实测!微乐自建房辅助工具挂... 玩家实测!微乐自建房辅助工具挂,微乐自建房脚本免费入口(开挂自建房)工具1、操作简单,无需微乐自建房...
推荐一款!微信微乐自建房辅助工... 推荐一款!微信微乐自建房辅助工具,微乐小程序免费黑科技(开挂自建房)攻略1、许多玩家不知道微信微乐自...
今日公布!微乐自建房辅助工具免... 今日公布!微乐自建房辅助工具免费app,微乐自建房脚本免费入口(开挂自建房)工具;1、任何微乐自建房...
必看攻略!微乐自建房辅助工具挂... 必看攻略!微乐自建房辅助工具挂,微乐自建房脚本免费入口(开挂自建房)脚本亲,关键说明,微乐自建房辅助...
科普常识!微乐微信自建房辅助工... 科普常识!微乐微信自建房辅助工具插件,微乐家乡麻将自建房辅助app(开挂自建房)教程1、完成微乐微信...