AutoMapper文档:http://docs.automapper.org/en/stable/The-MyGet-build.html

新的版本抛弃了静态API方法,我们将使用依赖注入来完成。

①添加包

②创建MyAutoMapper.cs文件来创建实体和Dto之间的映射关系

 public class MyAutoMapper : Profile
{
public MyAutoMapper()
{
//实体和Dto的相互转化
CreateMap<PFUserDto, PFUser>().ReverseMap();
}
}
 /// <summary>
/// 用户表
/// </summary>
[Table("PF_User")]
public class PFUser
{ /// <summary>
/// 主键
/// </summary>
[Column("UserGuid")]
[Display(Name = "用户表主键", Description = "用户表主键")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; } /// <summary>
/// 用户名
/// </summary>
[Display(Description = "用户名", Name = "用户名")]
[Column("UserName")]
[StringLength()]
public string UserName { get; set; } /// <summary>
/// 密码
/// </summary>
[Display(Description = "密码", Name = "密码")]
[Column("UserPassWord")]
[StringLength()]
public string UserPassWord { get; set; } /// <summary>
/// 是否删除
/// </summary>
[Display(Description = "是否删除", Name = "是否删除")]
[Column("IsDeleted")]
public byte? IsDeleted { get; set; } /// <summary>
/// 创建日期
/// </summary>
[Display(Description = "创建日期", Name = "创建日期")]
[Column("CreateDate")]
public DateTime? CreateDate { get; set; } }
 public class PFUserDto
{ /// <summary>
/// 主键
/// </summary>
[Column("UserGuid")]
[Display(Name = "用户表主键", Description = "用户表主键")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; } /// <summary>
/// 用户名
/// </summary>
[Display(Description = "用户名", Name = "用户名")]
[Column("UserName")]
[StringLength(128)]
public string UserName { get; set; } /// <summary>
/// 密码
/// </summary>
[Display(Description = "密码", Name = "密码")]
[Column("UserPassWord")]
[StringLength(256)]
public string UserPassWord { get; set; } /// <summary>
/// 是否删除
/// </summary>
[Display(Description = "是否删除", Name = "是否删除")]
[Column("IsDelte")]
public byte? IsDeleted { get; set; } /// <summary>
/// 创建日期
/// </summary>
[Display(Description = "创建日期", Name = "创建日期")]
[Column("CreateDate")]
public DateTime? CreateDate { get; set; } public string MyProperty { get; set; } }

 

③添加服务

  

④使用:实体转Dto,Dto转实体也是一样的

ProjectTo<>方法:

值的转化,我们想给前端传的时间是字符串形式的,AutoMapper还允许我们自定义转化器来转化我们的数据类型

①创建DateTimeTypeConverter.cs文件

 /// <summary>
/// DateTime2string
/// </summary>
public class DateTimeTypeConverter : ITypeConverter<DateTime, string>
{
public string Convert(DateTime source, string destination, ResolutionContext context)
{
return source.ToString("yyyy-MM-dd HH:mm:ss");
}
}

添加类型映射关系

public class MyAutoMapper : Profile
{
public MyAutoMapper()
{
// 可以给lambda表达式
//CreateMap<DateTime, string>().ConvertUsing(x => x.ToString("yyyy-MM-dd HH:mm:ss"));
//实现接口
CreateMap<DateTime, string>().ConvertUsing<DateTimeTypeConverter>();
//实体和Dto的相互转化
CreateMap<PFUserDto, PFUser>().ReverseMap();
} }

修改我们的Dto  CreateDate类型

使用:字符串转时间

时间转字符串

还有别的就自己看文档吧

.net core使用AutoMapper的更多相关文章

  1. ASP.NET Core教程:ASP.NET Core使用AutoMapper

    一.前言 在实际的项目开发过程中,我们使用各种ORM框架可以使我们快捷的获取到数据,并且可以将获取到的数据绑定到对应的List<T>中,然后页面或者接口直接显示List<T>中 ...

  2. .net core中automapper的使用

    automapper 是将两个类中的相同字段进行映射,也可以指定字段进行映射:将 UserDao的id 映射为 User 的age CreateMap<UserDao, User>() . ...

  3. .net core启用 autoMapper

    启用 autoMapper   autoMapper 基于约定的对象映射器 目录 安装包 添加服务 书写映射关系 安装包   需要安装两个包:AutoMapper和AutoMapper.Extensi ...

  4. .Net Core使用AutoMapper做对象关系映射

    我想很多后端开发者,纠结于如何在Dto及表实体中做属性关系映射,因为真的太繁琐了., ⒈如何使用? Mapper.Initialize(cfg => cfg.CreateMap<Users ...

  5. .net Core 使用AutoMapper

    在我们的项目中慢慢的要把数据库的实体模型和视图模型进行分离,防止被人拿到我们表字段.在学校的时候自己只是有将很多数据库模型,写成一个视图模型返回到前台. 首先我们把这两个包引入项目中去. 然后我们创建 ...

  6. .NET Core应用框架AA介绍(二)

    AA的开源地址 https://github.com/ChengLab/AAFrameWork AA框架是一个基础应用框架,是建立在众多大家熟知的流行工具之上并与之集成.比如:ASP.NET Core ...

  7. Getting A Mime Type From A File Name In .NET Core

    Getting a mime type based on a file name (Or file extension), is one of those weird things you never ...

  8. 使用ASP.NET Core构建RESTful API的技术指南

    译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术标准<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...

  9. 《进击吧!Blazor!》第一章 1.初识 Blazor

    作者介绍 陈超超 Ant Design Blazor 项目贡献者 拥有十多年从业经验,长期基于.Net技术栈进行架构与开发产品的工作,Ant Design Blazor 项目贡献者,现就职于正泰集团 ...

随机推荐

  1. html提示信息框淡入淡出效果(自己的思路,如果有更好的思路,请留言)

    使用方法: 调用initMessagebox(“要显示的文字”)方法即可 <!--信息框--> <div id="messagebox"></div& ...

  2. 教你玩转Linux系统目录结构

    Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的.Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POS ...

  3. BUAA-OO-2019 第四单元总结

    UML作业架构设计 这一单元的作业本质上是对数据之间的联系进行解析,并重新建立数据结构以方便查询的工作,这就要求我们了解各种UmlElement的结构以及他们之间的关系是如何组织的. 第十三次作业 在 ...

  4. 精益车间管理如何实现?让APS排程系统来帮忙

    精益制造是企业全面的文化改变,它的主要目标是消灭任何形式的浪费.最明显的例子是在生产区域堆积的物料.在制品.等待客户来买的成品.它还可能包括员工不必的移动和不增值的许多流程,目标是在最小的库存,最短的 ...

  5. android 第三方开源库 学习汇总

    依赖注入框架ButterKnife  https://github.com/JakeWharton/butterknife  学习过程     专注于android的View注入框架,并不支持其他方面 ...

  6. 关于ORACLE图形化安装过程中出现的竖线的处理办法

    这种情况上传个jre 并指定下就好了 ~/database/runInstaller -jreLoc /usr/local/jre1.8.0_191/

  7. AIX运维常用命令

    目前传统的磁盘管理仍有不足:如果下Unix系统中的存储容量需要扩展,文件系统就必须停止运行,然后通过重构分区的手段来进行分区和文件系统的扩容.一般采用的方法是先备份该文件系统并删除其所在的分区,然后重 ...

  8. 是否注意过isEmpty 和 isBlank 区别?

    isEmpty 和 isBlank 区别 org.apache.commons.lang.StringUtils 类提供了 String 的常用操作,最为常用的判空有如下两种 isEmpty(Stri ...

  9. 简明conda使用指南

    目录 区分conda, anaconda, miniconda conda版本 虚拟环境 分享环境 查看某个环境的位置 列出软件包 安装软件包 删除软件包 查找软件包 conda配置 conda实践: ...

  10. python_机器学习(一)、基本概念

    机器学习基础知识: (一).什么是机器学习? 对于某给定的任务T, 在合理的性能调度方案P的前提下, 某计算机程序可以自主学习任务T的经验E, 随着提供合适.优质.大量的经验E, 该程序任务T的性能逐 ...