【C#】Mapster对象映射的使用

news2025/4/3 13:02:49

系列文章

【C#】编号生成器(定义单号规则、固定字符、流水号、业务单号)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787

【C#】日期范围生成器(开始日期、结束日期)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129040663

【C#】组件化开发,调用dll组件方法
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129492112

【C#】数据实体类使用
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816638

【C#】单据审批流方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128972545

【C#】条码管理操作手册
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126589496

【C#】IIS平台下,WebAPI发布及异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836

【C#】代码模板生成工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673

【C#】MySQL数据库导入工具(批量Excel插入)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126427323

【C#】简单二维码制作和打印工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126884228

【C#】最全单据打印(打印模板、条形码&二维码、字体样式、项目源码)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129415723

【C#】Windows服务(Service)安装及启停方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053794

【C#】穿透Session隔离,服务调用外部程序(无窗体界面解决)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053033

【C#】任务计划实现,使用Quartz类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123667723

【C#】源码解析正则表达式
本文链接:https://blog.csdn.net/youcheng_ge/article/details/118337074

【C#】软件版本和文件MD5记录(XML操作)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

【C#】测试网络是否连通
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110137288

【C#】根据名称获取编码(Dictionary获取key方法)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129816701

【C#】数据建模,你是使用DataTable还是List?
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129792726

【C#】GridControl控件和数据集双向绑定
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129423755

【C#】GridControl动态更换DataSource,数据查询异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130305424

【C#】GridControl日期字段显示时分秒
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130718303

【C#】GridControl增加选择列(不用二次点击)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130763713

【C#】数据库检查工具(可跨库访问)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/97172329

【C#】代码解析–打印数据集
本文链接:https://blog.csdn.net/youcheng_ge/article/details/131431829

【C#】代码解析–截取整个方法函数
本文链接:https://blog.csdn.net/youcheng_ge/article/details/109817809

【C#】反射机制,动态加载类文件
本文链接:https://blog.csdn.net/youcheng_ge/article/details/131435110


文章目录

  • 系列文章
  • 前言
  • 一、问题描述
  • 二、解决方案
  • 三、软件开发(源码)
    • 3.1 引入开发包
    • 3.2 数据库实体类Entity
    • 3.3 数据传输对象Dto
    • 3.4 Dto到Entity映射
  • 四、项目展示
  • 五、资源链接


前言

我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的整个生命周期都可以调用你。 可惜世上没有这样的常量,我也无法定义你,因为你在我心中是那么的具体。

哈喽大家好,本专栏为【项目实战】专栏,有别于【底层库】专栏,我们可以发现增加 了『问题描述』、『项目展示』章节,十分符合项目开发流程,让读者更加清楚项目解决的问题、以及产品能够达到的效果。本专栏收纳项目开发过程的解决方案,是我项目开发相对成熟、可靠方法的提炼,我将这些问题的解决思路梳理,撰写本文分享给大家,大家遇到类似问题,可按本文方案处理。

本专栏会持续更新,不断完善,专栏文章关联性较弱(文章之间依赖性较弱,没有阅读顺序)。大家有任何问题,可以私信我。如果您对本专栏感兴趣,欢迎关注吧,我将带你用最简洁的代码,实现复杂的功能。

·提示:本专栏为项目实战篇,未接触项目开发的同学可能理解困难,不推荐阅读。
3A0N000001


一、问题描述

Mapster对象映射的使用

二、解决方案

三、软件开发(源码)

3.1 引入开发包

Mapster

在这里插入图片描述

3.2 数据库实体类Entity

DBFirst 自动根据数据库表,生成数据库实体,或者使用我的 工具,一样可以生成类文件。

//------------------------------------------------------------------------------
//     Entity实体类,也称为DBModel。
//     此代码由工具自动生成,请勿手动创建。
//     如果重新生成代码,将覆盖手动添加内容。
//------------------------------------------------------------------------------

using System.ComponentModel.DataAnnotations;
using System;
using System.Linq;
using System.Text;
using SqlSugar;


namespace YS.Model
{
    ///<summary>
    ///基础信息
    ///</summary>
    [SugarTable("裸砂原料信息表")]
    public class 裸砂原料信息表
    {
        public 裸砂原料信息表()
        {
        }

        /// <summary>
        /// 描述 :  
        /// 空值 : False
        /// 默认 : 
        /// </summary>
        [Display(Name = "")]
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public long AutoID { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 公司编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 四期
        /// </summary>
        [Display(Name = "")]
        public string 工厂名称 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 存货编码 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 采购订单编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 领用申请单编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 销售订单编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 供应商编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 裸砂原料类型 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 裸砂原料编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 砂规格 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 砂型号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 状态描述 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 0.000
        /// </summary>
        [Display(Name = "")]
        public decimal? 当前数量 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 打标时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 打标录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 打标人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 0.000
        /// </summary>
        [Display(Name = "")]
        public decimal? 打标数量 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 打标备注 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 否
        /// </summary>
        [Display(Name = "")]
        public string 是否隔离 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 隔离时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 隔离录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 隔离人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 隔离原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 否
        /// </summary>
        [Display(Name = "")]
        public string 是否放行 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 放行时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 放行录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 放行人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 放行原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 检验合格时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 检验合格样品编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 0.000
        /// </summary>
        [Display(Name = "")]
        public decimal? 检验合格数量 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 首次入库时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 生产领用
        /// </summary>
        [Display(Name = "")]
        public string 领用类型 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 领用时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 领用录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 领用人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 领用备注 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 退库时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 退库录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 退库操作人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 退库原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 退库备注 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 采购退货时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 采购退货录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 采购退货操作人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 采购退货原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 采购退货备注 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 报废时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 报废录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 报废操作人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 报废原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 报废备注 { get; set; }

        /// <summary>
        /// 描述 :  仓库编码
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 仓库编码 { get; set; }

        /// <summary>
        /// 描述 :  货位编码
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 货位编码 { get; set; }

    }
}

3.3 数据传输对象Dto

创建数据传输对象,也就是前端给后台传输的数据实体,由用户自定义
我这里前端下拉选,有key值,需要传到后台构造 编号字段的,但是数据库存储,是存的名称,不需要参照显示哦。

集成自3.2的实体列,在此基础上略微增加几个字段

//------------------------------------------------------------------------------
//     Entity实体类,也称为DBModel。
//     此代码由工具自动生成,请勿手动创建。
//     如果重新生成代码,将覆盖手动添加内容。
//------------------------------------------------------------------------------

using System.ComponentModel.DataAnnotations;
using System;
using System.Linq;
using System.Text;
using SqlSugar;


namespace YS.Model
{
    ///<summary>
    ///基础信息
    ///</summary>
    [SugarTable("裸砂原料信息表")]
    public class 裸砂原料信息表Dto : 裸砂原料信息表
    {

        /// <summary>
        /// 描述 :  裸砂原料类型编码
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "裸砂原料类型编码")]
        public string 裸砂原料类型编码 { get; set; }

        /// <summary>
        /// 描述 :  砂规格编码
        /// 空值 : True
        /// 默认 : 砂规格编码
        /// </summary>
        [Display(Name = "砂规格编码")]
        public string 砂规格编码 { get; set; }

        /// <summary>
        /// 描述 :  砂型号编码
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "砂型号编码")]
        public string 砂型号编码 { get; set; }

    }
}

3.4 Dto到Entity映射

引入命名空间

using Mapster;

实体映射
Adapt 映射关键字

// DataTable转换为对象处理
var sqlSugar1 = new BaseService<裸砂原料信息表Dto>();
List<裸砂原料信息表Dto> list1 = sqlSugar1.Db.Utilities.DataTableToList<裸砂原料信息表Dto>(Dt_Info);

// list就一条数据
裸砂原料信息表Dto 裸砂原料信息表Dto_Model = list1[0];

string str_LastAutoCode = AutoCode(string.Format("Y{0}{1}0{2}{3}[3位流水号]",
     裸砂原料信息表Dto_Model.供应商编号,
     裸砂原料信息表Dto_Model.裸砂原料类型编码,
     裸砂原料信息表Dto_Model.砂规格编码,
     裸砂原料信息表Dto_Model.砂型号编码
     ),
     "裸砂原料信息表", "裸砂原料编号");

裸砂原料信息表Dto_Model.裸砂原料编号 = str_LastAutoCode;
裸砂原料信息表Dto_Model.状态描述 = 裸砂原料状态.等待裸砂原料样检验;
裸砂原料信息表Dto_Model.打标时间 = DateTimeNow;
裸砂原料信息表Dto_Model.打标录入时间 = DateTimeNow;
裸砂原料信息表Dto_Model.打标人编号 = UserID;


// 做表映射,Dto->Entity
var info = 裸砂原料信息表Dto_Model.Adapt<裸砂原料信息表>();
var sqlSugar2 = new BaseService<裸砂原料信息表>();
sqlSugar2.Add(info);

有人可能问为什么有 DataTableToList()处理,我也没办法,接口中参数非要给我定义成 DataTable,我认为传输对象最好,直接定义成泛型,他们不听我的。
所以,数据后台处理我做了了转换,使用list处理。

四、项目展示

五、资源链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1192433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sectigo SSL

Sectigo&#xff08;前身为ComodoCA&#xff09;是全球在线安全解决方案提供商和全球最大的证书颁发机构。为了强调其在SSL产品之外的扩张&#xff0c;Comodo在2018年更名为Sectigo。新名称减少了市场混乱&#xff0c;标志着公司向创新的全方位网络安全解决方案提供商过渡。 S…

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群 Redis 的多种模式Redis-Alone 单机模式Redis 单机模式的优缺点 Redis 高可用集群模式Redis-Master/Slaver 主从模式Redis-Master/Slaver 哨兵模式哨兵模式监控的原理Redis 节点主客观下线标记Redis 节点主客观…

UnoCSS框架常用语法

文章目录 🍉vscode 开发插件🍉设置边框颜色🍉设置宽、高、背景色、外边距🍉设置flex🍉设置元素在滚动时固定在指定区域内🍉vscode 开发插件 vscode 开发建议安装 UnoCSS插件 🍉设置边框颜色 border-[color]: 设置边框的颜色,[color]可以是预设的颜色名称(如…

自学考试到底难不难?

自学考试难度谈不上大&#xff0c;其难度系数本身并不高&#xff0c;然而有几个难点&#xff0c;需要克服。 #自学#首先&#xff0c;要具备较强的信息搜集能力。zbb990101 从报名到毕业&#xff0c;考生需要主动关注各类考试动态&#xff0c;如专业选择、报名流程、采购教材、…

React【axios、全局处理、 antd UI库、更改主题、使用css module的情况下修改第三方库的样式、支持sass less】(十三)

文件目录 Proxying in Development http-proxy-middleware fetch_get fetch 是否成功 axios 全局处理 antd UI库 更改主题 使用css module的情况下修改第三方库的样式 支持sass & less Proxying in Development 在开发模式下&#xff0c;如果客户端所在服务器跟后…

Java poi给docx中的关键字标记颜色

Java poi给docx中的关键字标记颜色 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId>&l…

k8s 部署mqtt —— 筑梦之路

mqtt是干嘛的&#xff0c;网上有很多资料&#xff0c;这里就不再赘述。 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: mqttname: mqttnamespace: default spec:replicas: 1selector:matchLabels:app: mqttstrategy:rollingUpdate:maxSurge: 25%maxUnavaila…

鲁大师10月新机性能/流畅/久用榜:骁龙8 Gen3一鸣惊人,双十一“6系”处理器成井喷状态

刚刚过去的10月份手机圈可谓是热闹纷呈,要数量有数量,要新品有新品,要旗舰有旗舰,要走量也有走量。10月份的大部分光芒,毫无疑问都将被骁龙8 Gen3以及重夺骁龙旗舰首发的小米 14系列身上。 骁龙8 Gen3毫无疑问,代表着骁龙旗舰处理器的又一个巅峰,从目前鲁大师后台抓取到的数据…

计算机毕业设计:基于python机器学习的全国气象数据采集预测可视化系统 预测模型+爬虫(包含文档+源码+部署教程)

[毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多的人 。 1、摘 要 随着气候变化的不断加剧&#xff0c;气象数据的准确性…

starrocks 内部表 varchar(num) 和 String 怎么选

盲选string varchar可能会因为脏数据 长度过长出现报错

【FPGA】正确处理设计优先级--或许能帮你节省50%的资源

概述 假如现在有一种方法–可以在不怎么需要修改已有设计的情况下&#xff0c;就可以帮您节省50%的设计资源&#xff0c;那你会试试看吗&#xff1f; 当前市场环境下&#xff0c;更低廉的成本却可获得同等性能无疑是极具诱惑的。本文将介绍一种FPGA设计技术&#xff0c;该技术…

“云芯一体”赋能位置应用,真点高精度定位服务正式发布

11月9日&#xff0c;北斗星通旗下企业真点科技正式发布了云芯一体高精度定位服务——TruePoint.CM(厘米级定位服务)和TruePoint.DM&#xff08;分米级定位服务&#xff09;。 此次发布会在第一届测绘地理信息大会期间举办&#xff0c;中国测绘学会宋超智理事长、中国卫星导航定…

Vue.Draggable 踩坑:add 事件与 change 事件中 newIndex 字段不同之谜

背景 最近在弄自定义表单&#xff0c;需要拖动组件进行表单设计&#xff0c;所以用到了 Vue.Draggable(中文文档)。Vue.Draggable 是一款基于 Sortable.js 实现的 vue 拖拽插件&#xff0c;文档挺简单的&#xff0c;用起来也方便&#xff0c;但没想到接下来给我遇到了灵异事件……

Python数据容器(元组)

元组 1.定义元组 定义元组使用小括号&#xff0c;且使用逗号隔开各个数据&#xff0c;数据是不同的数据类型 # 定义元组字面量 (元素,元素,...,元素) # 定义元组变量 变量名称 (元素,元素,...,元素) # 定义空元组 变量名称 () 变量名称 tuple()2.元组的相关操作 编号方法…

JavaScript_Node节点属性_nodeName

nodeName属性&#xff1a;返回节点的名称 节点的类型有七种 Document&#xff1a;整个文档树的顶层节点 DocumentType&#xff1a;doctype标签 Element&#xff1a;网页的各种HTML标签 Attribute&#xff1a;网页元素的属性 Text&#xff1a;标签之间或标签包含的文本 C…

【kylin】使用nmtui软件配置网桥

文章目录 一、什么是网桥二、如何配置网桥域名解析失败 一、什么是网桥 网桥也叫桥接器&#xff0c;是连接两个局域网的一种存储/转发设备&#xff0c;它能将一个大的LAN分割为多个网段&#xff0c;或将两个以上的LAN互联为一个逻辑LAN&#xff0c;使LAN上的所有用户都可访问服…

go 引入包报错“构建约束排除‘D/...vendor/pkg包’”中所有的GO文件

解决方案&#xff1a; 方案一&#xff1a;没生效 go - 构建约束排除所有 Go 文件 - IT工具网 go modules - build constraints exclude all Go files in - Stack Overflow 方案二&#xff1a;生效&#xff0c;手动初始化创建一个目录 后续再研究原因&#xff0c;有明白的大…

第18章Swing程序设计

Swing程序设计 Swing用于开发桌面窗体程序用于JDK的第二代GUI框架&#xff0c;其功能比JDK第一代GUI框架AWT更为强大&#xff0c;性能更加优良。但因为Swing技术推出时间太早&#xff0c;七性能&#xff0c;开发效率等不及一些其他的留下技术&#xff0c;所以目前市场大多数桌面…

ISP算法——UVNR

ISP算法——UVNR 概念简介 UVNR也就是经过CSC只有在YUV域对UV两个色域进行降噪&#xff0c;在有些方案里也叫CNR&#xff08;chroma noise reduction&#xff09;。主要就是在YUV域针对彩燥进行特殊处理的一系列算法。 关于噪声产生的原因在前面关于降噪的文章和视频中已经做…

latex cite命令、款式

UTS SEDE 的 latex 模板 [1,2] 用 biblatex&#xff0c;默认用的引用格式是 ieee。然而 Research Foundation 的 literature review 这个作业要用 APA 7&#xff0c;想在保留 biblatex 的情况下区分有括号和无括号两种引用格式&#xff0c;即 [3] 中 \citet、\citep 的分别。 …