主键Id自增,如何获取Id(Dapper)

news/2024/10/6 1:52:48/文章来源:https://www.cnblogs.com/cyqdeshenluo/p/18281057

这里用的是Dapper,以前用EF的时候好像有用到过db.savechanges(). 但是项目中没有这个,所以用以下的方法去获取id

背景:涉及到多表入库,需要获取主表的Id,所以用到了这个(timeFields  可以忽略)

 

 

  /// <summary>/// 单个添加/// </summary>/// <typeparam name="T"></typeparam>/// <param name="t"></param>/// <param name="timeFields"></param>public int AddBackId<T>(T t, List<string> timeFields = null){var sql = GetSql(InsertSql, timeFields);if (!sql.EndsWith(";")){sql += ";";}if (!sql.EndsWith("SELECT LAST_INSERT_ID();")){sql += "SELECT LAST_INSERT_ID();";}return DB.Query<int>(sql, t).FirstOrDefault();}

  private string GetSql(string oSql, IEnumerable<string> timeFields = null){var fields = new List<string>();fields.AddRange(TimeFields);if (timeFields != null && timeFields.Any()){fields.AddRange(timeFields.Where(x => !TimeFields.Contains(x)));}var sql = oSql;if (fields.Any()){foreach (var field in fields){sql = sql.Replace($"@{field}", $"IF(@{field} = '0001-01-01 00:00:00', NULL, @{field})");}}return sql;}

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK、Tomcat、Maven配置

一、JDK安装及配置 1.下载地址:https://www.oracle.com/java/technologies/downloads/2.下载后直接本地安装,选择路径默认即可,类似如下路径:C:/Program Files/Java/jdk_1.8.0_301 3. 配置环境变量路径:程序->计算机->右键->属性->高级系统设置->高级->…

VSCode + Qt + QMake 开发编译环境搭建

鉴于Qt官方IDE太过难用,VSCode+各种插件功能强大,遂采用VSCode来写Qt项目; 本博客在 Windows 平台进行指导操作,Mac、Linux 平台配置方式类似,学习其本质就可。前置准备VSCode,最新版本即可 本地 Qt 环境,版本随意,本文主要针对较老版本使用Qmake构建系统的项目环境变…

eclipse设置的Alt+/出现卡顿问题解决。

eclipse的设置中快捷键【Alt+/】只留下这个。可能会有Alt+Ctrl+/什么的,都改成别的。否则会出现冲突卡顿。

面试官:JVM调优,主要针对是哪一个区域?JVM内存结构是怎样的?

作为一个Java程序员,在日常的开发中,不必像C/C++程序员那样,为每一个内存的分配而操心,JVM会替我们进行自动的内存分配和回收,方便我们开发。但是一旦发生内存泄漏或者内存溢出,如果对Java内存结构不清楚,那将会是一件非常麻烦的事情!本文笔者将为大家详解Java内存结构…

Jenv和JDK安装与配置指南

介绍如何在Windows系统上安装和配置Jenv和JDK。步骤包括从GitHub下载并解压Jenv,配置环境变量;从Oracle官网下载安装JDK,设置系统环境变量。使用Jenv命令管理JDK版本,包括添加、列出、切换、设置全局或局部版本及删除版本。提供Jenv常用命令和帮助信息供参考。一、Jenv安装…

Springboot整合Apollo

一、Apollo作用 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制…… 在这样的大环境下,传统的通过配置文件、数据库…

7月3日龙城新闻快报

龙城街道共有花园小区137个,为全市各街道最多,其中老旧小区37个,老旧小区居民约1.3万户近6万人。自市、区工作部署以来,聚焦37个老旧小区居民“出行难”问题,龙城街道组织“加梯服务队”以“加强精细治理、提升品质生活、感受城市温度”为目标,开启加装电梯工作“加速度”…

Cesium 实现可视域分析

*前言:尝试了网上好多个版本的可视域分析,感觉都有一些问题,我这个也可能不是最完美的,但是我觉得对我来说够用了,实现效果如下*此示例基于vue3上实现,cesium版本1.101.0 ,vite-plugin-cesium版本1.2.22 新建一个名为ViewshedAnalysis.js的JS文件 import glsl from ./…

从PDF到OFD,国产化浪潮下多种文档格式导出的完美解决方案

前言 近年来,中国在信息技术领域持续追求自主创新和供应链安全,伴随信创上升为国家战略,一些行业也开始明确要求文件导出的格式必须为 OFD 格式。OFD 格式目前在政府、金融、税务、教育、医疗等需要文件开放、共享和长期保存的行业中广泛应用。这种趋势在未来几年内将进一步…