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'用於嵌套映射嗎? –
我沒有辦法知道。但也許有一個。考慮發佈一個關於這個問題。 –