Нулевой источник создать пустой объект для назначения - PullRequest
0 голосов
/ 22 ноября 2018

Я использую 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.

Как я могу вернуть ноль, если источник нулевой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...