Невозможно использовать AutoMapper для отображения на нулевое значение - PullRequest
0 голосов
/ 20 января 2020
public class TestNullableString {
    public string? Test;

    public TestNullableString(string? test) {
        Test = test;
    }
}

public class TestNonNullableString {
    public string Test;
}

public class TestProfile : Profile
{
    public TestProfile() {
        CreateMap<TestNonNullableString, TestNullableString>
             .ForMember(dest => dest.Test, opt => {
                 opt.AllowNull();
                 opt.MapFrom(src => src.Test == "" ? null : src.Test);
              });
    }
}

Если я попытаюсь отобразить из NonNullableString в NullableString, он все равно даст мне пустую строку при отображении. Это не даст мне нулевое значение, даже если NonNullableString равно "". Что я делаю не так?

Я использую AutoMapper 9.0.0.

PS. Я также пытался установить для параметра AllowNullDestinationValues ​​значение true, но безуспешно.

1 Ответ

0 голосов
/ 20 января 2020
CreateMap<TestNonNullableString, TestNullableString>()
            .ForMember(dest => dest.Test,
                opt => { opt.MapFrom(src => string.IsNullOrWhiteSpace(src.Test) ? null : src.Test); })
            .ConstructUsing(x => new TestNullableString(string.IsNullOrWhiteSpace(x.Test) ? null: x.Test ));
...