如何在AutoMapper中配置List属性的映射



我是AutoMapper的新手。我有四个班:

public class Source
{
public int Id {get;set;}
public List<SourceItem> items {get;set;}
}
public class SourceItem
{
public int Id {get;set;}
public string firstName {get;set;}
public string lastName {get;set;}
}
public class Destination
{
public int Id {get;set;}
public List<SourceItemDestination> items {get;set;}
}
public class SourceItemDestination
{
public int Id {get;set;}
public string firstName {get;set;}
}

是否可以创建一个映射配置文件来将Source映射到Destination,从而允许在执行映射时显示SourceItemDestination的列表。映射

完成!以下是我的课程:

using AutoMapper;
using AutoMapper.EquivalencyExpression;
using Infrastructure.Data.Context;
using Microsoft.Extensions.DependencyInjection;
using System;
using WebAPI.AutoMapper;
namespace WebAPI.Configurations
{
public static class AutoMapperConfig
{
public static void AddAutoMapperConfiguration(this IServiceCollection services)
{
if (services == null) throw new ArgumentNullException(nameof(services));
services.AddAutoMapper((serviceProvider, automapper) =>
{
automapper.AddCollectionMappers();
automapper.UseEntityFrameworkCoreModel<CellLabDbContext>(serviceProvider);
}, typeof(MappingProfile).Assembly);            
}
}
}
using ApplicationCore.Domain;
using AutoMapper;

namespace WebAPI.AutoMapper
{
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<SourceItem, SourceItemDestination>().ReverseMap();
CreateMap<Source, Destination>().ReverseMap();
}
}
}

重要提示:我在映射列表时遇到问题,因为Source类的属性是只读的:

public class Source
{
public int Id {get;set;}
public List<SourceItem> items {get;}
}

通过执行此操作,映射器不会映射列表。但是,它不会引发任何错误或警告。

最新更新