>我有一个泛型列表,我想将此泛型列表映射到另一种类型的泛型列表(BatchModel to Batch)。但是在像这样映射两个这个对象之前,我有一些条件;
CrudTypes crudTypes(Enum)
List<BatchModel> batchModels;
var models = batchModels.Select(p => new Batch
{
BatchId = p.BatchId,
Id = p.Id,
CompleteTimeOnServer = crudTypes.Equals(CrudTypes.Insert) ? DateTime.Now : p.CompleteTimeOnServer,
SyncRetryCount = p.SyncRetryCount
}).ToList();
如何在自动映射器中进行此映射?
有一种方法可以做到这一点,在AutoMapper中使用BeforeMap
(见 http://docs.automapper.org/en/stable/Before-and-after-map-actions.html)。他们自己的例子:
Mapper.Initialize(cfg => {
cfg.CreateMap<Source, Dest>()
.BeforeMap((src, dest) => src.Value = src.Value + 10)
.AfterMap((src, dest) => dest.Name = "John");
});
因此,您可以像往常一样重写它以提取正确的集合(根据您的条件)映射。