C#对象映射器Mapster

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:一个快速、有趣且刺激的对象到对象映射器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值