У меня есть следующие настройки для автомпера:
cfg.CreateMap<NewBuildBlockViewModel, NewBuildBlock>();
cfg.CreateMap<NewBuildBlockAreaViewModel, NewBuildBlockArea>()
.ForMember(x => x.CreatedBy, opt => opt.Ignore()).ForMember(x => x.Created, opt => opt.Ignore())
.ForMember(x => x.LastModifiedBy, opt => opt.Ignore()).ForMember(x => x.LastModified, opt => opt.Ignore());
Так что для второго сопоставления я хочу игнорировать поля аудита.Классы следующие:
public class NewBuildBlockViewModel
{
public NewBuildBlockViewModel()
{
NewBuildBlockArea = new List<NewBuildBlockAreaViewModel>();
}
public int NewBuildBlockId { get; set; }
public int ContractId { get; set; }
public IList<NewBuildBlockAreaViewModel> NewBuildBlockArea { get; set; }
}
public class NewBuildBlockAreaViewModel
{
public int NewBuildBlockAreaId { get; set; }
public int NewBuildBlockId { get; set; }
[MaxLength(255)]
public string Name { get; set; }
public bool IsPlot { get; set; }
public bool IsDeletable { get; set; }
}
public class NewBuildBlock : IAuditCreated, IAuditLastModified
{
[Key] public int NewBuildBlockId { get; set; }
public int ContractId { get; set; }
public DateTime Created { get; set; }
public string CreatedBy { get; set; }
public DateTime? LastModified { get; set; }
public string LastModifiedBy { get; set; }
public List<NewBuildBlockArea> NewBuildBlockArea { get; set; }
}
public class NewBuildBlockArea : IAuditCreated, IAuditLastModified
{
[Key] public int NewBuildBlockAreaId { get; set; }
public int NewBuildBlockId { get; set; }
[MaxLength(255)]
public string Name { get; set; }
public bool IsPlot { get; set; }
public DateTime Created { get; set; }
public string CreatedBy { get; set; }
public DateTime? LastModified { get; set; }
public string LastModifiedBy { get; set; }
public NewBuildBlock NewBuildBlock { get; set; }
public override string ToString()
{
return Name;
}
}
Итак, как вы можете видеть, я сопоставляю класс с вложенным списком. Во время сопоставления я бы хотел, чтобы поля аудита игнорировались, но для списков, которые я обнаружил, онивместо этого устанавливаются значения по умолчанию, поэтому в поле «Создано» отображается минимальная дата 01.01.10001, а для значения «CreatedBy» установлено значение «ноль».Что не так с этим кодом?Я использую версию 6.1.1.
var originalNewBuild = this.SirUoW.NewBuildBlock.GetItem(
x => x.BlockUPRN == blockUPRN && x.ContractId == contractId, x =>
x.NewBuildBlockArea);
var newNewBuild = Mapper.Map(newBuildBlockViewModel, originalNewBuild);