C#对象映射器Mapster

这篇具有很好参考价值的文章主要介绍了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的内存的。

测试报告:

C#对象映射器Mapster

 文章来源地址https://www.toymoban.com/news/detail-542704.html

6.总结

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

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






 

到了这里,关于C#对象映射器Mapster的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HarmonyOS学习路之开发篇—数据管理(对象关系映射数据库)

    HarmonyOS对象关系映射(Object Relational Mapping,ORM)数据库是一款基于SQLite的数据库框架,屏蔽了底层SQLite数据库的SQL操作,针对实体和关系提供了增删改查等一系列的面向对象接口。应用开发者不必再去编写复杂的SQL语句, 以操作对象的形式来操作数据库,提升效率的同时也

    2024年02月13日
    浏览(28)
  • LabVIEW开发分段反射器测试台

    LabVIEW开发分段反射器测试台 随着对太空的观察需求越来越远,而不是当前技术(如哈勃望远镜)所能达到的,有必要增加太空望远镜主镜的尺寸。但是,增加主镜像的大小时存在几个问题。随着反射镜尺寸的增加,制造精确的抛物面镜变得更加困难。单个单片主镜的尺寸受

    2024年02月13日
    浏览(25)
  • 界面开发框架Qt - 组合小部件映射器示例

    Qt 是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 Combo Widget Mapper(组合小部件映射器)示例展示了如何

    2023年04月14日
    浏览(34)
  • LabVIEW开发光线追踪可视化分段反射器测试台

    LabVIEW开发光线追踪可视化分段反射器测试台 为了满足美国国家航空航天局(NASA)对未来望远镜的要求,新的红外空间天文台将在哈勃太空望远镜使用寿命结束后取代其。作为HST的继任者,詹姆斯韦伯太空望远镜(JWST),以前被称为下一代太空望远镜(NGST),需要一个更大

    2024年02月09日
    浏览(37)
  • 什么是ORM(对象关系映射)?

    ORM(对象关系映射)是一种编程技术,用于在关系型数据库和面向对象编程语言之间建立映射关系。它的目标是通过自动化和简化数据访问层的开发,将数据库表和记录映射到面向对象编程语言中的对象和类。 ORM提供了一种将数据库中的数据转换为编程语言中的对象的机制,

    2024年02月12日
    浏览(39)
  • CANopen | 对象字典OD 05 - 创建对象字典变量,映射到RPDO

    该章节的源代码地址:github 以上摘自《CANopen_easy_begin》的第7章。 CANopen从站有一个变量rx_Value,映射到PDO1上。接着,CANopen主站通过CANopen协议修改CANopen从站的变量rx_Value。 使用Objdictedit软件打开文件夹/obj_dir/Slave1.od对象字典。 在0x2000~0x5FFF的地址创建变量rx_Value,类型是uint1

    2024年02月09日
    浏览(48)
  • 【Linux驱动开发】013 与gpio相关的OF函数 一、前言

    在上节,我们提供了驱动中gpio子系统相关的API函数,主要用来申请释放gpio、设置gpio输入输出、获取设置gpio的值。 我们进行上述设置的前提是:在驱动程序中需要读取 gpio 属性内容。为此,Linux 内核提供了几个与 GPIO 有关的 OF 函数。 用于统计设备树某个属性里面定义了几个

    2024年02月14日
    浏览(36)
  • 使用 GPT4 和 ChatGPT 开发应用:前言到第三章

    原文:Developing Apps with GPT-4 and ChatGPT 译者:飞龙 协议:CC BY-NC-SA 4.0 在发布仅仅五天后,ChatGPT 就吸引了惊人的一百万用户,这在科技行业及其他领域引起了轰动。作为一个副作用,OpenAI API 用于人工智能文本生成的接口突然曝光,尽管它已经可用了三年。ChatGPT 界面展示了这

    2024年01月20日
    浏览(53)
  • 关于C# 使用 sqlite 映射实体类笔记

    1、安装SQLite 2、在 app.conifg 文件中添加如下信息 解决问题: No Entity Framework provider found for the ADO.NET provider with invariant name ‘System.Data.SQLite’. Make sure the provider is registered in the ‘entityFramework’ section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more informati

    2024年01月24日
    浏览(30)
  • 浅聊一下 C#程序的 内存映射文件 玩法

    前段时间训练营里有朋友问 内存映射文件 是怎么玩的?说实话这东西理论我相信很多朋友都知道,就是将文件映射到进程的虚拟地址,说起来很容易,那如何让大家眼见为实呢?可能会难倒很多人,所以这篇我以自己的认知尝试让大家眼见为实。 在任何讨论之前,内存文件

    2024年02月08日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包