C#对象映射器Mapster

打印 上一主题 下一主题

主题 563|帖子 563|积分 1689

1.前言

       在开发中,我们经常用到对象之间的映射。谈到对象映射器,我们比较熟知的肯定是AutoMapper,但很少人会知道Mapster。今天在这里我们一起探讨一下什么是Mapster?为什么有了AutoMapper映射器了,还要学习使用Mapster?
2.什么是Mapster?

        Mapster是一个.NET库,它提供了一种简单的方式来实现对象之间的映射。它使用了一个基于约定的自动映射策略,让你可以轻松地将一个对象转换为另一个对象。
3.安装

使用NuGet CLI安装Mapster:
  Install-Package Mapster
或者使用.NET core CLI安装Mapster:
  dotnet add package Mapster
4.基本用法

4.1映射到新对象

       Mapster创建目标对象并将值映射到该对象。
       var destObject = sourceObject.Adapt();
4.2映射到现有对象

       创建对象后,Mapster会映射到该对象。
       sourceObject.Adapt(destObject);
4.3可查询扩展

        Mapster还提供了映射查询表的扩展。
  1. using (MyDbContext context = new MyDbContext())
  2. {
  3.     // 使用Mapster提供的ProjectToType扩展方法减少我们手动Select操作
  4.     var destinations = context.Sources.ProjectToType<Destination>().ToList();
  5.     // 相对于手工操作
  6.     var destinations = context.Sources.Select(c => new Destination {
  7.         Id = c.Id,
  8.         Name = c.Name,
  9.         Surname = c.Surname,
  10.         ....
  11.     })
  12.     .ToList();
  13. }<br>
复制代码
5.为什么选择Mapster?

        Mapster旨在提高速度和内存效率。您可以获得4倍的性能提升的同时只使用1/3的内存的。
测试报告:


 
6.总结

Mapster是一个非常方便的库,它可以大大简化.NET项目中的对象之间的映射工作,并且具有很好的可扩展性和灵活性,更重要的是相比于其它对象映射库有性能和内存效率。这么好的对象映射库,您会在项目中使用吗?
这里提供下Mapster开源地址:GitHub-MapsterMapper/Mapster:一个快速、有趣且刺激的对象到对象映射器






 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表