我有以下代码应该:
这几乎可以工作,但在最后更新期间 - 其中一个字段被设置为null,但不应该触及。
主:
config.CreateMap<Entity, Dto>()
.ForMember(d => d.Additional,
input => input.MapFrom(i => new DtoAdditional{
Editable = i.Additional.Editable
}));
config.CreateMap<Dto, Entity>()
.ForMember(d => d.Additional,
input => input.MapFrom(i => new EntityAdditional
{
Editable = i.Additional.Editable
}));
映射:
public class Entity
{
public string Id { get; set; }
public EntityAdditional Additional { get; set; }
public Entity(string id) {
Id = id;
Additional = new EntityAdditional()
{
Editable = "Editable",
NotEditable = "UnEditable"
};
}
}
public class EntityAdditional
{
public string Editable { get; set; }
public string NotEditable { get; set; }
}
实体:
public class Dto
{
public DtoAdditional Additional { get; set; }
}
public class DtoAdditional
{
public string Editable { get; set; }
}
DTO:
string DefaultConnection =_iconfiguration.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value;
答案 0 :(得分:1)
那是因为你指定了:
new EntityAdditional
{
Editable = i.Additional.Editable
//, NotEditable = null // Default value
}));
无需自定义映射:
Mapper.CreateMap<EntityAdditional, DtoAdditional>()
.ReverseMap();
Mapper.CreateMap<Entity, Dto>()
.ReverseMap();