automapper - 如何在 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允许在执行 mapper.Map 时带来 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;}
}
通过这样做,映射器不会映射列表。但是,它不会引发任何错误或警告。
推荐阅读
- excel - Spreadsheet::WriteExcel - 尽管单元格被格式化为文本,但值被更改为科学记数法
- c# - Aspx C# 从 EDMX 生成 .cs 文件
- angular - 关于在垫子上切换按钮的问题
- spring-boot - spring boot 项目中的 .mvn 文件夹是什么意思?
- sql - 如何根据数字检查计算具有真正布尔值的行数
- java - java - 如何在问题类中使用日期选择器时使用Java中的系统当前日期验证用户输入日期
- javascript - 如何在一段时间后重新渲染组件
- reactjs - 反应中的高阶函数(useState())
- android - ObservableZip .subscribe() 崩溃:空指针异常,但是是什么原因导致的呢?
- python - 赋值之前引用的局部变量,我不知道为什么会弹出