【问题标题】:Merge two objects using AutoMapper使用 AutoMapper 合并两个对象
【发布时间】:2015-08-06 07:00:26
【问题描述】:

我想使用 AutoMapper 合并两个对象(参见下面的测试)。我尝试了很多方法,但它总是从目标或源复制两个属性。

我怎样才能通过下面的测试?

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

[Test]
public void Merge_people()
{
    var source = new Person() { LastName = "Smith" };
    var target = new Person() { FirstName = "John" };

    Mapper.CreateMap<Person, Person>();
    Mapper.Map(source, target);

    Assert.That(target.FirstName == "John");
    Assert.That(target.LastName == "Smith");
}

【问题讨论】:

    标签: c# automapper


    【解决方案1】:

    使用正确定义的条件,您可以管理您需要的内容:

     Mapper.CreateMap<Person, Person>()
           .ForAllMembers(o => o.Condition((source, destination, member) => member != null));
    

    它只会映射与 null 不同的成员。 我正在使用 AutoMapper 6.1.1,但我相信它也应该适用于旧版本。

    【讨论】:

      【解决方案2】:

      我相信 Automapper 还没有这种功能。见链接here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-26
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-30
        • 1970-01-01
        相关资源
        最近更新 更多