博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 ASP.NET Core 中使用 AutoMapper 使 Entity 和 Resource 之间进行映射
阅读量:5772 次
发布时间:2019-06-18

本文共 2089 字,大约阅读时间需要 6 分钟。

目录

从 NuGet 安装 AutoMapper

在使用 AutoMapper 时,核心的包是 AutoMapper 和 AutoMapper.Extensions.Microsoft.DependencyInjection。

PM> Install-Package AutoMapperPM> Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection

添加 Entity类 和 Resource类

在项目添加 Post类 和 Resource类。

// Entity类    public class Post    {
public int PostId {
get; set; } public string Title {
get; set; } public string Content {
get; set; } public DateTime LastModified {
get; set; } } // Resource类 public class PostResource {
public int PostId {
get; set; } public string Title {
get; set; } public string Content {
get; set; } public DateTime UpdateTime {
get; set; } }

添加一个 Profile文件,配置映射关系

随后我们需要继承Profile类来配置映射关系

public class MappingProfile: Profile	{
//从Post到PostResource的映射 CreateMap
() // 对名字不同的字段配置映射 .ForMember(dest => dest.UpdateTime, opt => opt.MapFrom(src => src.LastModified));; //从PostResource到Post的映射,此处没有对名称不同的字段进行映射 CreateMap
(); }

在Startup中对AutoMapper进行注册

在Startup类的ConfigureServices方法中进行注册

services.AddAutoMapper();

注册以后会自动找到MappingProfile类。

在项目中使用AutoMapper进行映射

示例如下:

[Route("api/[controller]")]    [ApiController]    public class ValuesController : ControllerBase    {
private readonly MyContext _myContext; private readonly IMapper _mapper; public ValuesController(MyContext myContext, IMapper mapper) {
_myContext = myContext; _mapper = mapper; } [HttpGet] public ActionResult
> Get(int id) {
Post post = _myContext.Posts.Find(id); PostResource postResource = _mapper.Map
(post); List
posts = _myContext.Posts.ToList(); IEnumerable
postResources = _mapper .Map
, IEnumerable
>(posts); return new string[] { "value1", "value2" }; } }

参考文档 :

转载于:https://www.cnblogs.com/MaleDeer/p/10797508.html

你可能感兴趣的文章
python和pywin32实现窗口查找、遍历和点击
查看>>
第二章 概率图模型的基本原理
查看>>
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Nginx反向代理,负载均衡,redis session共享,keepalived高可用
查看>>
CentOS7 yum 安装git
查看>>
sublime text 3浅色主题
查看>>
数据结构之红黑树(三)——删除操作
查看>>
html5视频标签
查看>>
JAVA进阶-注解
查看>>
三元表达式之理解/jquery源代码分析之$.inArray实现
查看>>
STM32 mdk软件仿真时过不去时钟的问题
查看>>
(转)让Spring自动扫描和管理Bean
查看>>
Spark Streaming概念学习系列之Spark Streaming容错
查看>>
Windows Server 2003 用户账户的密码和用户配置文件
查看>>
单例模式
查看>>
使用Nginx反向代理 让IIS和Tomcat等多个站点一起飞
查看>>
老旧的金融机构,是时候赶赶云计算的时髦了
查看>>
晶澳向埃及11MW混合发电项目供应光伏组件
查看>>
国产x86 CPU性能达Intel的80%?
查看>>
用友网络陈强兵:企业互联网需解决五大问题
查看>>