Я использую automapper 7.0.1 с ядром .Net 2.1.
Этот класс преобразуется в
public class Item
{
public long Id { get; set; }
public int? CurrencyId { get; set; }
public Location Location { get; set; } = null;
}
public class ItemLocation
{
public long Id { get; set; }
public string Address { get; set; }
[NotMapped]
public Translation Translations { get; set; }
public bool IsPrivate { get; set; } = false;
public IList<ItemLocationUserDefined> UserDefinedItemLoacation { get; set; }
[NotMapped]
public float Latitude { get; set; }
[NotMapped]
public float Longitude { get; set; }
}
Преобразуется в:
public class ItemsToReturnDto
{
public long Id { get; set; }
public int? CurrencyId { get; set; }
public LocationDto Location { get; set; } = null;
}
public class ItemLocationToReturnDto
{
public long Id { get; set; }
public string Address { get; set; }
public Translation Translations { get; set; }
public float Latitude { get; set; }
public float Longitude { get; set; }
public bool IsUserDefined { get; set; }
public DateTimeOffset UpdatedAt { get; set; }
public DateTimeOffset CreatedAt { get; set; }
public bool Disabled { get; set; }
}
Я инициализировал Automapper в файле startup.cs
var mappingConfig = new MapperConfiguration(mc =>
{
mc.AllowNullDestinationValues = true;
mc.AddProfile(new MappingProfile());
});
IMapper mapper = mappingConfig.CreateMapper();
services.AddSingleton(mapper);
Профиль сопоставления:
CreateMap<ItemsToReturnDto, Item>()
.ForMember(dest => (int)dest.Status, opts => opts.MapFrom(src => src.Status))
.ReverseMap();
CreateMap<ItemLocationToReturnDto, ItemLocation>()
.ForMember(dest => dest.IsPrivate, opts => opts.MapFrom(src => src.IsUserDefined))
.ReverseMap();
Но даже если исходный объект Location является нулевым, Automapper автоматически инициализирует пустой объект Location.
Как я могу вернуть ноль, если источник нулевой?