我使用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按名称自动映射所有字符串属性,但保留忽略空值的“补丁式”逻辑。
发布于 2017-02-14 12:13:52
您可以使用IgnoreNullValues。
https://stackoverflow.com/questions/42140898
复制相似问题