菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
2
0

.net core中使用Automapper

原创
05/13 14:22
阅读数 93928

安装所需的包
Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection

配置AutoMapper
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
}
1
2
3
4
5
添加测试模型
public class QueueInfo
{
public string Id { get; set; }

public string QueueNumber { get; set; }

public DateTime CreateTime { get; set; }

}
1
2
3
4
5
6
7
8
9
public class QueueInfoCreateDto
{
public string Id { get; set; }

public string QueueNumber { get; set; }

public DateTime CreateTime { get; set; }
}
1
2
3
4
5
6
7
8
创建用户自定义Profile进行映射配置
public class QueueProfile:Profile
{
public QueueProfile()
{
CreateMap<QueueInfo, QueueInfoCreateDto>().ReverseMap();
}
}
1
2
3
4
5
6
7
ReverseMap表示双向映射。具体还有很多相关的api,详情可以进行官网查看。

进行测试
public class ValuesController : ControllerBase
{
//注册IMapper
private readonly IMapper _mapper;
public ValuesController(IMapper mapper)
{
_mapper = mapper;
}
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
QueueInfo info = new QueueInfo
{
Id = Guid.NewGuid().ToString(),
CreateTime = DateTime.Now,
QueueNumber = "123456789"
};
var dto = _mapper.Map<QueueInfoCreateDto>(info);
return Ok(dto);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
集合之间也可以进行映射。其他拓展请查看官网进行学习。

Automapper还可以在命名上进行自动转换。

例如
public class QueueInfo
{
public string Id { get; set; }

public string QueueNumber { get; set; }

public DateTime CreateTime { get; set; }

public QueueItem QueueItem { get; set; }
}

public class QueueItem
{
public string Id { get; set; }

public string Name { get; set; }
}

public class QueueInfoCreateDto
{
public string Id { get; set; }

public string QueueNumber { get; set; }

public DateTime CreateTime { get; set; }

/// <summary>
/// 这里使用的是QueueInfo中的QueueItem对象下的Name。进行映射的时候会自动映射
/// </summary>
public string QueueItemName { get; set; }
}
————————————————
版权声明:本文为CSDN博主「Jonny Lin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xhl_james/article/details/90511969

发表评论

0/200
2 点赞
0 评论
收藏
为你推荐 换一批