Mapster - Как сделать игнорирование отображения для нулевых свойств
Я использую Mapster для отображения экземпляров Dto на объекты Model.
Dtos отправляются клиентом Javascript, отправляя только обновленные свойства.
Я хотел бы игнорировать нулевые значения и сделать так, чтобы Mapster оставил экземпляр модели без изменений для этих свойств.
Упрощенный пример, чтобы лучше объяснить сценарий:
// My .Net Dto class, used for client/server communication.
public class PersonDto
{
public string Id { get; set; }
public string Name { get; set; }
public string Family { get; set; }
}
// My Model class. Let's assume is the same data as per the Dto.
public class Person
{
public string Id { get; set; }
public string Name { get; set; }
public string Family { get; set; }
}
public void Update()
{
var existingPerson = new Person
{
Id = "A",
Name = "Ned",
Family = "Stark"
};
var patchDataSentFromClient = new PersonDto
{
Id = "A",
Name = "Rob"
};
patchDataSentFromClient.Adapt(existingPerson);
// Here existingPerson.Family should be "Stark", but it gets emptied out.
// the mapping should be equivalent to:
// if (patchDataSentFromClient.Family != null) existingPerson.Family = patchDataSentFromClient.Family;
}
Изменить: дело в том, что я не хочу записывать условие сопоставления для каждого из тысяч свойств в моем Dtos. Я хочу, чтобы Mapster автоматически сопоставлял все строковые свойства по имени, но сохранял "патч-подобную" логику игнорирования нулевых значений.