博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AutoMapper在asp.netcore中的使用
阅读量:6899 次
发布时间:2019-06-27

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

automapper 是.net 项目中针对模型之间转换映射的一个很好用的工具,不仅提高了开发的效率还使代码更加简洁,当然也是开源的,,这不多做介绍,详细看,下面是介绍它在 .net core 项目中的使用

 

1. 首先当然先引用 AutoMapper

   - 你可以在NuGet中直接输入AutoMapper直接引用,也可以在控制台输入 Install-Package AutoMapper

 

 2. 其次我们要引用 AutoMapper 对依赖注入的一个扩展  Extensions.Microsoft.DependencyInjection

   - 由于.net core 中自带依赖注入,我们要用DI来注册我们的Mapper类

 

 3. 在Startup 类中找到 ConfigureServices 方法 引用我们扩展中的方法

     

 

 4. 在项目中创建一个映射配置类,可以项目中的任何文件夹下,扩展代码中是通过反射找出程序集中的所有映射配置

1
2
3
4
5
6
7
8
9
  
public 
class 
UserProfile : Profile
    
{
        
public 
UserProfile()
        
{
            
// Add as many of these lines as you need to map your objects
            
CreateMap<UserInfo, UserInfoModel>();
            
CreateMap<UserInfoModel, UserInfo>();
        
}
    
}

 5. 在 Controller中用构造函数注入 IMapper 

1
2
3
4
5
6
7
8
9
10
 
private 
readonly 
IMapper _mapper;
 
        
public 
UserInfoController(IUserInfoService userInfoService,
            
IUnitOfWork unitOfWork, ILogger<UserInfoController> logger, IMapper mapper)
        
{
            
_unitOfWork = unitOfWork;
            
_userInfoService = userInfoService;
            
_logger = logger;
            
_mapper = mapper;
        
}

6. 最后就可以使用mapper

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   
public 
IActionResult AddUser(UserInfoModel model)
        
{
            
if 
(!ModelState.IsValid)
            
{
                
return 
View(model);
            
}
            
var 
user = _mapper.Map<UserInfo>(model); 
//映射
            
var 
repoUser = _unitOfWork.GetRepository<UserInfo>();
            
repoUser.Insert(user);
            
var 
r = _unitOfWork.SaveChanges();
            
//_userInfoService.AddUserInfo();
            
return 
Json(
new 
MgResult()
            
{
                
Code = r > 0 ? 0 : 1,
                
Msg = r > 0 ? 
"ok" 
"SaveChanges失败!"
            
});
        
}

 

本文永久更新地址:

asp.net core 开发框架:

本文来自:http://www.cnblogs.com/fighting2014/p/7954191.html

转载于:https://www.cnblogs.com/chengeng/p/9238303.html

你可能感兴趣的文章
思維的枷鎖
查看>>
Python天天美味(29) - 调用VC++的动态链接库(DLL)
查看>>
Prim 最小生成树算法
查看>>
金蝶结账的时候出现压缩账套失败 KIC_Compress.KD
查看>>
JavaScriptSerializer 序列化json 时间格式
查看>>
PyCharm 总结
查看>>
Microsoft Enterprise Library 5.0 系列教程(九) Policy Injection Application Block
查看>>
ASP.NET Core 返回 Json DateTime 格式
查看>>
web安全实践(3)再谈基于http的服务器架构剖析
查看>>
SQL SERVER 2005 进行XML查询
查看>>
[CareerCup] 6.5 Drop Eggs 扔鸡蛋问题
查看>>
[Share]18个UI原稿图(包括twitter手稿)
查看>>
丁夏畦同志去世
查看>>
技术方案之外你还能做什么
查看>>
是什么让C#成为最值得学习的编程语言
查看>>
不同机具的通用的第二代居民身份证读写
查看>>
【Cocos2d-x】Cocos2d-X网络编程-HttpRequest/HttpClient/HttpResponse
查看>>
用SQL语句,删除掉重复项只保留一条
查看>>
阿里云CDN直播架构与双11晚会直播实战
查看>>
辗转相除法_欧几里得算法_java的实现(求最大公约数)
查看>>