3
我有以下类。如何将嵌套对象映射到现有的嵌套对象?
public class Person {
public string Name { get; set; }
public Address Address { get; set; }
}
public class PersonDTO {
public string Name { get; set; }
public Address Address { get; set; }
}
我创建使用
Mapper.CreateMap<Person, PersonDTO>();
标准映射然后我想一个Person
映射到那样的现有PersonDTO
层次,现有的Address
将被更新,而不是参考,如果你复制明白我的意思了吗。
var person = new Person() {
Name = "Test",
Address = new Address() {
Country = "USA",
City = "New York"
}
};
var personDTO = new PersonDTO() {
Name = "Test2",
Address = new Address() {
Country = "Canada",
City = "Ottawa"
}
};
Mapper.Map(person, personDTO);
我想完成下列测试。
Assert.AreNotEqual(person.Address, personDTO.Address);
Assert.AreEqual(person.Address.Country, personDTO.Address.Country);
Assert.AreEqual(person.Address.City, personDTO.Address.City);
谢谢你,我会尝试。这个断言只是一种假象 - 指示,尽管感谢提示。 –
是的,这很好用,谢谢。然而,在现实世界中,为了简单起见,我使用了'DynamicMap',并且明确定义所有这些自映射将需要大量的样板代码。没有任何一种隐含的方式使这种行为成为默认的方式吗?或者我可以创建自己的方法,试图将'CreateMissingTypeMaps'用于嵌套映射吗? –
我没有办法知道。但也许有一个。考虑发布一个关于这个问题。 –