Я пытаюсь сопоставить только 2 из 4 свойств объекта с типом назначения. В моем случае DeletedBy
и DeletedDate
, где в качестве значения DeletedDate будет просто установлена текущая дата UT C.
public class DeleteCommand : IRequest
{
public string CodePath { get; set; }
[JsonIgnore]
public Guid? DeletedBy { get; set; }
[IgnoreMap]
public DeleteMode DeleteMode { get; set; } = DeleteMode.Soft;
}
Это моя текущая конфигурация:
CreateMap<DeleteCommand, Asset>(MemberList.Source)
.ForMember(x => x.DeletedDate, opt => opt.MapFrom(src => DateTime.UtcNow))
.ForMember(x => x.DeletedBy, opt => opt.MapFrom(src => src.DeletedBy));
Выполнение модульного теста с указанным c конфигурацией сопоставления дает мне 2 ошибки для отсутствующего сопоставления:
[Fact]
public void MapperConfigShouldBeValid()
{
_config.AssertConfigurationIsValid();
}
Несопоставленные свойства: DeletedDate DeleteMode
Это сбивает меня с толку, так как Date определен явно, а DeleteMode настроен на игнорирование по умолчанию. Если возможно, я хочу избежать создания другого dto, которое будет отображаться из первого dto, а затем в сущность, для мягкого удаления, путем установки полей аудита.
Вещи, которые я пробовал до сих пор:
IgnoreMapAttribute
, как показано выше ForSourceMember()
, похоже, не поддерживает метод Ignore для свойства источника.