DBFirst

默认创建所有实体

CreateClassFile()的第二个参数为生成实体类命名空间

//.net6以下
db.DbFirst.IsCreateAttribute().CreateClassFile("c:\\Demo\\1", "Models");
//.net6以上 string加?
db.DbFirst.IsCreateAttribute().StringNullable().CreateClassFile("c:\\Demo\\1", "Models");//参数1:路径  参数2:命名空间
//IsCreateAttribute 代表生成SqlSugar特性

生成所有实体且文件名小写(userentity.cs),用(UserEntity.cs多好)应该没人会用吧

db.DbFirst.FormatFileName(x => x.ToLower()).CreateClassFile("c\\yourPath");

如果数据库字段可空,生成实体加上"?",string?,int?,DateTime?

db.DbFirst.StringNullable().CreateClassFile("c\\");//强制可以空类型string加上?

按需创建实体

第二句,把表名先转成小写,再查看是否匹配,表里Snow->snow == "snow",生成的实体类还是以表名一样Snow{}

db.DbFirst.Where("Student").CreateClassFile("c:\\Demo\\2", "Models");
db.DbFirst.Where(it => it.ToLower().StartsWith("snow")).CreateClassFile("c:\\Demo\\3", "Models");
db.DbFirst.Where(it => it.ToLower().StartsWith("view")).CreateClassFile("c:\\Demo\\4", "Models");

数据库设置字段默认值就加上,例如public bool isDeleted {get;set;} = 0

自定义模版格式化

注意SettingPropertyTemplate可能和IsCreateAttribute存在冲突一般不要一起使用,因为这俩都是向实体类属性上添加特性的。

db.DbFirst.SettingClassTemplate(old => { return old;/*修改old值替换*/ })//类构造函数 .SettingConstructorTemplate(old =>{return old;/*修改old值替换*/ }).SettingNamespaceTemplate(old => {return old + "\r\nusing SqlSugar;"; //实体类追加引用SqlSugar,}).SettingPropertyDescriptionTemplate(old =>{ return old;/*修改old值替换*/}) //属性备注//属性:新重载 完全自定义用配置.SettingPropertyTemplate((columns,temp,type) => {var columnattribute = "\r\n           [SugarColumn({0})]";List<string> attributes = new List<string>();if (columns.IsPrimarykey)attributes.Add("IsPrimaryKey=true");if (columns.IsIdentity)attributes.Add("IsIdentity=true");if (attributes.Count == 0) {columnattribute = "";}return temp.Replace("{PropertyType}", type).Replace("{PropertyName}", columns.DbColumnName).Replace("{SugarColumn}",string.Format(columnattribute,string.Join(",", attributes)));}).CreateClassFile("c:\\Demo\\7");
//[SettingClassTemplate]-------------自定义类模板(添加基类和接口)
db.DbFirst.SettingClassTemplate(old => {// 在默认类定义前添加继承和接口// 原模板格式类似: public class {ClassName} {{ ... }}return old.Replace("public class", "public class {ClassName} : BaseEntity, IEntity");})//[SettingConstructorTemplate]------------自定义构造函数模版
db.SettingConstructorTemplate(old => 
{// 提取类名(先去掉括号,再分割)string className = old.Split('(')[0].Split(' ')[1];// 生成构造函数return $@"public {className}() {{ }} // 无参构造函数public {className}(string name) {{//有参this.Name = name;}}";
})//[SettingNamespaceTemplate]--------------自定义命名空间模版
db.DbFirst.SettingNamespaceTemplate(old => {// 修改命名空间并添加所需引用return "namespace MyProject.Entities;\r\n" +"using System;\r\n" +"using SqlSugar;\r\n" +"using Newtonsoft.Json;";})//[SettingPropertyDescriptionTemplate]-------自定义注释
db.DbFirst.SettingPropertyDescriptionTemplate(old => {// 为属性添加XML注释return $@"/// <summary>/// {old} - 最后更新时间/// </summary>";}).CreateClassFile("C:\\EntityModels");//[SettingPropertyTemplat]
//SettingPropertyTemplate可能和IsCreateAttribute存在冲突一般不要一起使用,因为这俩都是向实体类属性上添加特性的
db.DbFirst.SettingPropertyTemplate((columns, temp, type) => {// 构建SugarColumn特性var columnAttr = "\r\n        [SugarColumn({0})]";var attributes = new List<string>();// 添加主键标识if (columns.IsPrimarykey)attributes.Add("IsPrimaryKey = true");// 添加自增标识if (columns.IsIdentity)attributes.Add("IsIdentity = true");//假如你数据库列为user_name,SqlSugar生成的实体为UserName,这个时候就要进行列名映射// 添加列名映射(如果实体属性名与数据库列名不同)if (columns.DbColumnName != columns.PropertyName)attributes.Add($"ColumnName = \"{columns.DbColumnName}\"");// 添加忽略属性(如果需要)实体类Password属性上的就会添加特性[SugarColumn(IsIgnore = true)]if (columns.DbColumnName.ToLower() == "password")attributes.Add("IsIgnore = true");// 如果没有属性,清空特性if (attributes.Count == 0)columnAttr = "";// 处理可空类型/*columns.IsNullable:数据库字段设置为允许为NULLtype != "string":排除字符串类型(C# 中string本身就是可空的)!type.Contains("?"):确保类型还没有被处理为可空类型(避免重复添加?)*/var propertyType = type;if (columns.IsNullable && type != "string" && !type.Contains("?"))propertyType += "?";// 替换模板变量//这里做的是把上面的执行转换完成后生成实体属性/*按照格式生成 [SugarColumn(....)]public PropertyType PropertyName {get;set;},例如:[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]public int Id { get; set; }*/return temp.Replace("{PropertyType}", propertyType).Replace("{PropertyName}", columns.PropertyName).Replace("{SugarColumn}", string.Format(columnAttr, string.Join(",", attributes)));})

CodeFirst

特性介绍【SugarColumn】【SugarTable("表名")】

创建索引特性

插入

几种插入方法

100w条数据插入只要3.8s

扩展一下,java采用LOAD DATA插入 100 万条数据还约 8.9 秒,可以说C#性能nb

修改

  

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

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

相关文章

LeetCode 392.判断子序列

给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"abcde"的一个子序列&#x…

逻辑回归:从原理到实战的完整指南

在机器学习中&#xff0c;分类任务是最常见的应用场景之一。而逻辑回归&#xff08;Logistic Regression&#xff09;&#xff0c;尽管名字中有“回归”&#xff0c;实际上是一种非常强大且广泛应用的二分类模型。它简单、高效、可解释性强&#xff0c;是数据科学初学者入门分类…

鸿蒙搭配前端开发:应用端与WEB端交互

鸿蒙系统&#xff08;HarmonyOS&#xff09;是华为开发的一款面向全场景的分布式操作系统&#xff0c;其设计初衷是为了适应物联网时代的需求&#xff0c;旨在构建一个统一的操作系统&#xff0c;支持多种设备的无缝协同工作。其分布式开发的一些主要优势&#xff1a; 跨设备协…

配置sscms时被sql server处处刁难

今天要记下来的是一个小例子。接前面&#xff0c;当我终于完成sql server的安装时&#xff0c;才发现要填写sscms的两个空是有多么艰难。首先安装sql server2016出现了太多环境不兼容的问题&#xff0c;让我只好退而安装sql server2012。安装sql server2012时其实是可以避坑的&…

【Flink】DataStream API:源算子、数据类型

目录源算子&#xff08;Source&#xff09;从集合中读取数据从文件读取数据从Socket读取数据从Kafka读取数据从数据生成器读取数据Flink支持的数据类型Flink的类型系统Flink支持的数据类型类型提示&#xff08;Type Hints&#xff09;源算子&#xff08;Source&#xff09; Fli…

Linux 安装docker-compose安装方法(安装docker compose安装)

文章目录**方法一&#xff1a;通过 curl 下载二进制文件&#xff08;推荐&#xff09;**1. 安装前准备- **确保已安装 Docker**- **检查 Docker 是否安装成功**2. 下载并安装 Docker Compose- **下载最新版本的 Docker Compose 二进制文件**- **国内加速下载&#xff08;解决 G…

OCR 发票识别与验真接口:助力电子化发票新时代

自 2025 年 10 月 1 日起&#xff0c;纸质火车票彻底告别历史舞台&#xff0c;全面数字化的电子发票取而代之&#xff0c;这一变革标志着票务领域的重大革新&#xff0c;也让电子化发票处理的需求呈井喷式增长。在此背景下&#xff0c;OCR 发票识别和发票验真接口技术挺身而出&…

设计模式:抽象工厂模式(Abstract Factory Pattern)

文章目录一、概念二、实例分析三、完整示例一、概念 抽象工厂模式是一种创建型设计模式。 提供一个接口用于创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们的具体类。 相比于工厂方法模式&#xff0c;抽象工厂模式不仅仅是创建单一产品&#xff0c;而是一族产品&am…

轻量级注意力模型HOTSPOT-YOLO:无人机光伏热异常检测新SOTA,mAP高达90.8%

【导读】 无人机光伏巡检如何更智能、更高效&#xff1f;HOTSPOT-YOLO模型给出了亮眼答案&#xff01;给AI装上“热成像鹰眼”&#xff0c;能精准锁定光伏板上的细微热斑缺陷。它不仅将检测精度&#xff08;mAP&#xff09;提升至90.8%&#xff0c;更在保持实时性的前提下大幅…

CHT共轭传热: 导热系数差异如何影响矩阵系数

文章目录 一、导热系数差异如何影响矩阵系数&#xff1f;二、如何处理系数差异以加速收敛&#xff1f;1. **变量重缩放&#xff08;Scaling of Variables&#xff09;**2. **使用物理型预条件子&#xff08;Physics-based Preconditioning&#xff09;**3. **区域分解法&#x…

Vue Vapor 事件机制深潜:从设计动机到源码解析

基于 vue3.6&#xff08;alpha 阶段&#xff09;及 Vapor 的最新进展撰写&#xff1b;Vapor 仍在演进中&#xff0c;部分实现可能继续优化。TL;DR&#xff08;速览&#xff09; 传统&#xff08;≤3.5&#xff09;&#xff1a;事件以元素为中心绑定&#xff1b;每个元素用 el._…

Day 01(01): Hadoop与大数据基石

目标&#xff1a;建立对大数据生态的整体认知&#xff0c;理解HDFS和MapReduce的核心思想。 8:00-9:30&#xff1a;【视频学习】在B站搜索“Hadoop入门”或“三小时入门大数据”&#xff0c;观看1-2个高播放量的简介视频&#xff0c;了解大数据面临的问题和Hadoop的解决方案。 …

开源 + 免费!谷歌推出 Gemini CLI,Claude Code 的强劲对手

在如今飞速发展的 AI 工具生态中&#xff0c;命令行界面&#xff08;CLI&#xff09;这一开发者与计算机交互的传统方式&#xff0c;正悄然发生着一场颠覆性的变革。2025 年 6 月 25 日&#xff0c;谷歌正式发布开源的 Gemini CLI&#xff0c;这一举措标志着谷歌 Gemini AI 能力…

MacOS - 记录MacOS发烫的好几天 - 幕后黑手竟然是

MacOS - 记录MacOS发烫的好几天 - 幕后黑手竟然是 Mac是不可能出bug的&#xff0c;一定是世界出bug了。 前言 几天前Mac突然开始烫烫的&#xff0c;就这么一烫烫了好几天。这可不行&#xff0c;所以看了下“活动监视器”&#xff0c;发现了一个Code Helper(Plugin)占据200%上下…

Vue基础知识-Vue中:class与:style动态绑定样式

完整源码<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src&quo…

终于赶在考试券过期前把Oracle OCP证书考下来了!

&#x1f6a9; 今天终于能松口气了——Oracle OCP证书到手&#xff01; 差点白白浪费一次考试机会&#xff08;1700&#xff09;&#xff01;3月底报名了Oracle OCP&#xff0c;摆烂了大半年&#xff0c;终于是逼着自己在考试券过期前考完了082和083科目&#xff0c;目前已经顺…

Power BI学习笔记-周报销售数据分析

Power BI学习笔记-周报销售数据分析 简介 来自B站的Power BI学习视频的学习笔记。 记录来自B站的Power BI教学视频&#xff0c;由“高级财务BP-Ni”发布&#xff0c;视频发布者主要发布财务类相关的PBI视频&#xff0c;视频长度30分钟左右。 视频链接&#xff1a; 【powerbi周报…

Oracle 数据库与操作系统兼容性指南

前言 作为一个在 Oracle 坑里摸爬滚打多年的老 DBA&#xff0c;最怕听到的就是"这个版本能不能装在这个系统上&#xff1f;"这种问题。昨天又有朋友来问我 Oracle 数据库和操作系统的兼容性&#xff0c;索性把这些年积累的官方兼容性列表整理出来&#xff0c;省得大家…

pytorch初级

本文章是本人通过读《Pytorch实用教程》第二版做的学习笔记&#xff0c;深度学习的核心部分&#xff1a;数据准备 ➡️ 模型构建 ➡️ 模型训练 ➡️ 模型评估与应用。根据上面的思路&#xff0c;我们分为几个部分&#xff1a; 第一部分&#xff1a;PyTorch 基础 - 涵盖了从基本…

UniApp 混合开发:Plus API 从基础到7大核心场景实战的完整指南

在 UniApp 混合开发中&#xff0c;plus API 是连接前端代码与原生设备能力的核心桥梁。基于 5 Runtime&#xff0c;它封装了设备硬件、系统交互、网络通信等近百种原生能力&#xff0c;解决了 UniApp 跨端 API 覆盖不足的问题。但直接使用 plus API 常面临兼容性复杂、回调嵌套…