C#对象映射器Mapster
  mhMvWcWjt1Vg 2023年11月02日 41 0

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<Destination>();

4.2映射到现有对象

       创建对象后,Mapster会映射到该对象。

       sourceObject.Adapt(destObject);

4.3可查询扩展

        Mapster还提供了映射查询表的扩展。

using (MyDbContext context = new MyDbContext()) { // 使用Mapster提供的ProjectToType扩展方法减少我们手动Select操作 var destinations = context.Sources.ProjectToType<Destination>().ToList(); // 相对于手工操作 var destinations = context.Sources.Select(c => new Destination {  Id = c.Id,  Name = c.Name,  Surname = c.Surname,  ....  }) .ToList(); }

5.为什么选择Mapster?

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

测试报告:

 

6.总结

Mapster是一个非常方便的库,它可以大大简化.NET项目中的对象之间的映射工作,并且具有很好的可扩展性和灵活性,更重要的是相比于其它对象映射库有性能和内存效率。这么好的对象映射库,您会在项目中使用吗?

这里提供下Mapster开源地址:GitHub-MapsterMapper/Mapster:一个快速、有趣且刺激的对象到对象映射器






 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  NPQODODLqddb   2024年05月17日   69   0   0 .NET
  mVIyUuLhKsxa   2024年05月17日   52   0   0 .NET
  XkHDHG7Y62UM   2024年05月17日   45   0   0 .NET
  f18CFixvrKz8   2024年05月18日   86   0   0 .NET
  rBgzkhl6abbw   2024年05月18日   78   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   41   0   0 .NET
  S34pIcuyyIVd   2024年05月17日   60   0   0 .NET
  gKJ2xtp6I8Y7   2024年05月17日   50   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   39   0   0 .NET
mhMvWcWjt1Vg
作者其他文章 更多