使用 AutoMapper 合并两个对象
Merge two objects using AutoMapper
我想使用 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");
}
我相信 Automapper 还没有那种功能。见 link here
使用正确定义的条件,您可以管理所需的内容:
Mapper.CreateMap<Person, Person>()
.ForAllMembers(o => o.Condition((source, destination, member) => member != null));
它将只映射不同于 null 的成员。
我正在使用 AutoMapper 6.1.1,但我相信它也适用于旧版本。
我想使用 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");
}
我相信 Automapper 还没有那种功能。见 link here
使用正确定义的条件,您可以管理所需的内容:
Mapper.CreateMap<Person, Person>()
.ForAllMembers(o => o.Condition((source, destination, member) => member != null));
它将只映射不同于 null 的成员。 我正在使用 AutoMapper 6.1.1,但我相信它也适用于旧版本。