.Net Core AutoMapper的使用
对于DTO和Entity之间的转换一般我们都会采用AutoMapper来使用,当然AutoMapper也确实比较好用。
首先我们要通过nuget安装AutoMapper.Extensions.Microsoft.DependencyInjection
我们采用的是AutoMapper 9.0跟之前的用法可能有点区别
首先创建配置文件AutoMapConfig,通过继承Profile来实现,我们将sys_user 和sys_userDto进行对应关系的配置,加上ReverseMap()作用是双向映射
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AutoMapper;
using MyMis.DTO;
using MyMis.Entities;
namespace MyMis.Web.Configuration {
public class AutoMapConfig : Profile {
public AutoMapConfig() {
CreateMap<sys_user, sys_userDto>().ReverseMap();
}
}
}
然后对配置文件进行加载,在Startuup文件中ConfigureServices方法中加入如下代码
//配置AutoMapper
services.AddAutoMapper(typeof(AutoMapConfig));
使用方法的话可以注入IMapper接口,通过IMapper来进行,并不像之前的版本通过Mapper静态方法来实现,不过使用起来也挺方便的
using System;
using System.Collections.Generic;
using System.Text;
using MyUtility.Interface;
using MyMis.IRepository;
using MyMis.IService;
using MyMis.Entities;
using System.Linq;
using AutoMapper;
using MyMis.DTO;
using MyUtility.AutoMapper;
namespace MyMis.Service {
public class TestService : ITestService {
//注册IMapper
private readonly IMapper _mapper;
private Isys_userRepository _sys_userRepository;
public TestService(Isys_userRepository sys_userRepository,
IMapper Mapper) {
_sys_userRepository = sys_userRepository;
_mapper = Mapper;
}
public string Show(string str) {
var name = _sys_userRepository.Where(b => b.account == str).SingleOrDefault().name;
return $"this is :{str} and name is:{name}";
}
public sys_userDto GetUser(string str) {
var q = _sys_userRepository.Where(b => b.account == str).SingleOrDefault();
var dto = _mapper.Map<sys_user, sys_userDto>(q);//_mapper.Map<sys_userDto>(q);
//var dto = q.MapTo<sys_userDto>();
return dto;
}
}
}
————————————————
版权声明:本文为CSDN博主「Sammy爱学习」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sammy520/article/details/104169145
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-06-22 mysql安装之初始化报错:mysqld: [ERROR] Found option without preceding group in config file G:\mysql\my.ini at
2021-06-22 .NET面试题大全(C#面试题)2020更新
2021-06-22 mysql 高版本 sql_mode=only_full_group_by 问题解决方法
2021-06-22 Mysql8.0出现this is incompatible with sql_mode=only_full_group_by
2021-06-22 mysql8 设置sql_mode后不能启动
2021-06-22 mysql.ini 配置
2021-06-22 解决Mysql安装之后没有my.ini配置文件问题