Automapper:当源成员未声明时,防止目标成员被null覆盖
创始人
2024-09-23 16:31:46
0

在使用AutoMapper时,如果源对象的成员未声明,而目标对象的成员已经被赋值为null,可以通过使用AutoMapper的条件映射功能来防止目标成员被null覆盖。

以下是一个示例代码,演示了如何使用AutoMapper的条件映射功能:

using AutoMapper;

public class SourceObject
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class DestinationObject
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap()
                .ForMember(dest => dest.Name, opt => opt.Condition(src => src.Name != null))
                .ForMember(dest => dest.Age, opt => opt.Condition(src => src.Age != 0));
        });

        var mapper = config.CreateMapper();

        var source = new SourceObject
        {
            Name = "John"
            // Age is not set in the source object
        };

        var destination = new DestinationObject
        {
            Name = null,
            Age = 30
        };

        mapper.Map(source, destination);

        Console.WriteLine(destination.Name); // Output: "John"
        Console.WriteLine(destination.Age);  // Output: 30
    }
}

在上面的示例中,通过使用ForMember方法的Condition选项,我们可以为目标成员设置一个条件,以防止源成员为null时进行覆盖。在这个示例中,如果源成员Name为null,那么目标成员Name将不会被覆盖;如果源成员Age为0,那么目标成员Age也不会被覆盖。

当我们执行mapper.Map(source, destination)时,AutoMapper会根据配置将源对象的成员映射到目标对象的成员。由于源对象的Name成员不为null,所以目标对象的Name成员被映射为John。由于源对象的Age成员为0,所以目标对象的Age成员保持为原来的值30。

这样,我们就可以防止目标成员被null覆盖,只有在源成员不为null或满足某个条件时才进行映射。

相关内容

热门资讯

终于知道!微信微乐自建房辅助工... 终于知道!微信微乐自建房辅助工具,微乐自建房脚本免费入口(开挂自建房)软件微信微乐自建房辅助工具辅助...
科技分享!微乐自建房辅助工具脚... 科技分享!微乐自建房辅助工具脚本,微乐家乡麻将自建房辅助app(开挂自建房)脚本微乐家乡麻将自建房辅...
普及知识!微信雀神麻将挂件开挂... 普及知识!微信雀神麻将挂件开挂辅助,微乐自建房脚本免费入口(开挂自建房)插件1、操作简单,无需微信雀...
一分钟揭秘!微乐家乡麻将自建房... 一分钟揭秘!微乐家乡麻将自建房辅助app,微乐自建房脚本免费入口(开挂自建房)脚本1、打开软件启动之...
热门推荐!微乐家乡麻将自建房辅... 热门推荐!微乐家乡麻将自建房辅助app,微乐家乡麻将自建房辅助app(开挂自建房)攻略1、微乐家乡麻...
发现一款!微乐自建房辅助工具,... 发现一款!微乐自建房辅助工具,微乐小程序免费黑科技(开挂自建房)软件1、全新机制【微乐自建房辅助工具...
揭秘一下!微乐家乡麻将自建房辅... 揭秘一下!微乐家乡麻将自建房辅助app,微乐自建房脚本免费入口(开挂自建房)攻略在进入微乐家乡麻将自...
分享给玩家!微乐自建房辅助工具... 分享给玩家!微乐自建房辅助工具挂,微乐小程序免费黑科技(开挂自建房)教程1、下载好微乐自建房辅助工具...
实测揭晓!微乐家乡麻将自建房辅... 实测揭晓!微乐家乡麻将自建房辅助app,微乐家乡麻将自建房辅助app(开挂自建房)插件1、进入游戏-...
终于知道!微信卡五星辅助器,微... 终于知道!微信卡五星辅助器,微乐小程序免费黑科技(开挂自建房)插件1、完成微信卡五星辅助器有辅助插件...