Ниже представлен профиль автоматического картирования. Возникает ошибка в том, что адрес назначения Id
имеет неправильный формат ввода.
Свойство назначения Id
даже не отображается.
public class AspGetUserLoginReturnModelToSRSDLUserLoginModel : Profile
{
public AspGetUserLoginReturnModelToSRSDLUserLoginModel()
{
CreateMap<asp_GetUserLoginReturnModel, SRSDLUserLoginModel>()
.ForMember(dest => dest.UserPassword, opt => opt.MapFrom(src => src.PasswordHash))
.ForMember(dest => dest.UserId, opt => opt.MapFrom(src => src.Id)
;
}
}
Теперь целевой класс SRSDLUserLoginModel
является производным от базового класса, имеющего метод доступа publi c с именем Id
, который является типом обнуляемого long
.
Исходное свойство Id
, используемое выше, имеет тип string
.
Поскольку код, показанный выше, источник Id
сопоставлен со свойством назначения UserId
.
Но Automapper сопоставляет источник Id
со свойством Id
классов на основе назначения .
ПОЧЕМУ ЭТО ПРОИСХОДИТ?
Код прямолинейный, и нет ничего нового, что нужно сделать. Это Automapper, как и большинство других пакетов, с которыми я работаю?
В рамках full / classi c. NET пакеты работали нормально, но в. NET Core эти пакеты просто отстой?
// source class
public partial class asp_GetUserLoginReturnModel
{
public string Id { get; set; }
}
// destination classes
public class SRSDLUserLoginModel: SRSDLModel, ISRSDLUserLoginModel
{
public string UserId { get; set; }
public string UserPassword { get; set; }
// [...]
}
public class SRSDLModel : ISRSDLModel
{
public long? Id { get; set; }
// [...]
}