Код: Выделить всё
public class ApiRequest
{
public int? FwVersion { get; set; }
public int? OsVersion { get; set; }
public int PageSize { get; set; }
public string Owner { get; set; } = String.Empty;
}
Код: Выделить всё
public class DbRequest
{
public int PageSize { get; set; }
public string Owner { get; set; } = String.Empty;
public int FwVersion { get; set; }
public bool FwVersionSpecified { get; set; }
public int OsVersion { get; set; }
public bool OsVersionSpecified { get; set; }
}
Для каждого свойства, допускающего значение NULL, в моем ApiRequest существует свойство, не допускающее значения NULL, в классе DbRequest и другое логическое свойство с тем же именем и «SpecifiedSuffix». Я заполняю свойство, не допускающее значения NULL, с помощью GetValueOrDefault(), а соответствующее указанное свойство — с помощью HasValue. Вот пример моей конфигурации AutoMapper:
Код: Выделить всё
public class MappingConfiguration : Profile
{
public MappingConfiguration()
{
// Fix mappings
CreateMap()
.ForMember(dst => dst.FwVersion, opt => opt.MapFrom(
src => src.FwVersion.GetValueOrDefault()
))
.ForMember(dst => dst.FwVersionSpecified, opt => opt.MapFrom(
src => src.FwVersion.HasValue
))
.ForMember(dst => dst.OsVersion, opt => opt.MapFrom(src => src.OsVersion.GetValueOrDefault()))
.ForMember(dst => dst.OsVersionSpecified, opt => opt.MapFrom(src => src.OsVersion.HasValue));
}
}
Код: Выделить всё
DbRequest
Подробнее здесь: https://stackoverflow.com/questions/790 ... properties