当前位置: 首页 > news >正文

烟台网站建设工作/seo 优化技术难度大吗

烟台网站建设工作,seo 优化技术难度大吗,渭南免费做网站,重庆网站建设电脑版.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列 &#x1f…

 .NET开源 ORM 框架 SqlSugar 系列

  1. 【开篇】.NET开源 ORM 框架 SqlSugar 系列
  2. 【入门必看】.NET开源 ORM 框架 SqlSugar 系列
  3. 【实体配置】.NET开源 ORM 框架 SqlSugar 系列
  4. 【Db First】.NET开源 ORM 框架 SqlSugar 系列
  5. 【Code First】.NET开源 ORM 框架 SqlSugar 系列

🔥Code First 代码优先,数据迁移,索引

DbFirst(数据库优先)‌是Entity Framework(EF)中的一种开发模式,其核心思想是先创建数据库,然后根据数据库的结构生成对应的实体类和数据访问代码。DbFirst模式适用于已经存在一个成熟的数据库,例如从旧系统迁移过来的数据库,或者数据库由专业的数据库管理员设计好,开发人员需要基于这个数据库来构建应用程序的情况‌。当然了,站在巨人的肩膀上,很多国产的ORM框架自出道也拥有该技能。

🟢优点和缺点

优点‌:

  • 灵活性‌:DbFirst 模式允许开发人员利用现有的数据库结构,减少重复工作。

  • 成熟度‌:适用于已有成熟数据库的情况,可以快速启动项目。

  • 可维护性‌:由于数据库结构已经存在,维护和修改数据库结构时更为方便。

缺点‌:

  • 依赖性‌:依赖于现有的数据库结构,可能无法完全满足业务需求的变化。

  • 灵活性差‌:在敏捷开发环境中,可能需要频繁调整数据库结构,这可能会影响开发效率。

01. 代码:快捷生成实体

✔️优点所有数据库都支持

只能满足常规要求,个性化太高的用 234方案

1. 代码生成实体到指定目录

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

新功能1: 格式化文件名

db.DbFirst.FormatFileName(x => x.ToLower()).CreateClassFile("c\\");
//格式化类名和字段名 看标题6

新功能2: NET 7 字符串是否需要?设置

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

2. 生成实体并且带有筛选


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

3. 生成带有SqlSugar特性的实体

db.DbFirst.IsCreateAttribute().CreateClassFile("c:\\Demo\\5", "Models");

4.生成实体带有默认值

db.DbFirst.IsCreateDefaultValue().CreateClassFile("c:\\Demo\\6", "Demo.Models");//5.1.4.108-preview12+ 支持了替换字符串db.DbFirst.Where("Student").CreatedReplaceClassString(it=>it.Replace("xxx","yyy"))// 也可以用正则 Regex.Replace.CreateClassFile("c:\\Demo\\2", "Models");

5.自定义格式化功能

添加 SettingPropertyTemplate 重载,加强自定义属性的定义功能

  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");

🚫 注意:该功能可能和 IsCreateAttribute 存在冲突一般不要一起使用

6.格式化类名和属性名

新功能:5.1.4.115

注意:FormatFileName(it=>it.Replace(" ","").Replace("-","_"))  要写成链式的,只能一个。

 db.DbFirst.IsCreateAttribute()//创建sqlsugar自带特性.FormatFileName(it => "File_" + it) //格式化文件名(文件名和表名不一样情况).FormatClassName(it => "Class_" + it)//格式化类名 (类名和表名不一样的情况).FormatPropertyName(it => "Property_" + it)//格式化属性名 (属性名和字段名不一样情况).CreateClassFile("c:\\Demo\\4", "Models");//注意只能写一个//正确 
FormatFileName(it=>it.Replace(" ","").Replace("-","_")) //错误
.FormatFileName(it=>it.Replace(" ",""))  
.FormatFileName(it=>it.Replace("-","_"))

7. 替换生成后的 ClassString

🚫 注意:这个替换性能损耗最大,能用其他功能替换优先其他功能替换

//5.1.4.108-preview12+ 支持了替换字符串db.DbFirst.Where("Student").CreatedReplaceClassString(it=>it.Replace("xxx","yyy"))//也可以用正则 Regex.Replace.CreateClassFile("c:\\Demo\\2", "Models");

8.添加租户

db.DbFirst.Where("order").SettingClassDescriptionTemplate(it => {return it+"\r\n    [Tenant(\""+db.CurrentConnectionConfig.ConfigId+"\")]";}).CreateClassFile("c:\\Demo\\1", "Models");

9. 生成String? .NET 7+

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

02. 代码:Razor 模版生成

1.使用用例

    SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = Config.ConnectionString,DbType = DbType.SqlServer,IsAutoCloseConnection = true,ConfigureExternalServices = new ConfigureExternalServices(){RazorService = new RazorService()//新建一个RazorService类 }});var templte = RazorFirst.DefaultRazorClassTemplate;//这个是自带的,这个模版可以修改db.DbFirst.UseRazorAnalysis(templte).CreateClassFile("c:\\Demo\\Razor\\");

RazorService 类在 framework和 .net Core 中小有区别看下面例子

2. net  framework 

创建 RazorService 需要安装 RazorEngine 3.10.0.0  

using RazorEngine;
using RazorEngine.Templating;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SqlSugar.DbFirstExtensions
{public class RazorService : IRazorService{public List<KeyValuePair<string,string>> GetClassStringList(string razorTemplate, List<RazorTableInfo> model){if (model != null && model.Any()){var  result = new List<KeyValuePair<string, string>>();foreach (var item in model){try{item.ClassName = item.DbTableName;//格式化类名string key = "RazorService.GetClassStringList"+ razorTemplate.Length;var classString = Engine.Razor.RunCompile(razorTemplate, key, item.GetType(), item);result.Add(new KeyValuePair<string,string>(item.ClassName,classString));}catch (Exception ex){new Exception(item.DbTableName + " error ." + ex.Message);}}return result;}else{return new List<KeyValuePair<string, string>> ();}}}
}

3. net core |.net5 | .net6

创建 RazorService 需要安装 RazorEngine.NetCore 3.1

using RazorEngine;
using RazorEngine.Templating;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;namespace DbFirstRazorTest
{class Program{static void Main(string[] args){SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST",DbType = DbType.SqlServer,IsAutoCloseConnection = true,ConfigureExternalServices = new ConfigureExternalServices(){RazorService = new RazorService()}});db.DbFirst.UseRazorAnalysis(RazorFirst.DefaultRazorClassTemplate).CreateClassFile("c:\\Demo\\Razor\\");}}public class RazorService : IRazorService{public List<KeyValuePair<string, string>> GetClassStringList(string razorTemplate, List<RazorTableInfo> model){if (model != null && model.Any()){var result = new List<KeyValuePair<string, string>>();foreach (var item in model){try{item.ClassName = item.DbTableName;//格式化类名string key = "RazorService.GetClassStringList" + razorTemplate.Length;var classString = Engine.Razor.RunCompile(razorTemplate, key, item.GetType(), item);result.Add(new KeyValuePair<string, string>(item.ClassName, classString));}catch (Exception ex){new Exception(item.DbTableName + " error ." + ex.Message);}}return result;}else{return new List<KeyValuePair<string, string>>();}}}
}

03. 工具ReZero生成实体

缺点:只支持常用数据库  SqlServer、MySql、 Pgsql 、Oracle、Sqlite、达梦 和 金仓(默认模式),我觉着这不算啥缺点了,该有的都有了。

优点:  界面操作 、修改模版方便

.NET 新代码生成器 ReZero.API - .NET 新代码生成器 - .NET果糖网

04. 获取表和列信息

下面方法可以拿到表信息,用途还是蛮多的。

//例1 获取所有表
var tables = db.DbMaintenance.GetTableInfoList(false);//true 走缓存 false不走缓存
foreach (var table in tables)
{Console.WriteLine(table.Description);//输出表信息
}

下面方法可以拿到列信息,用途还是蛮多的。

 db.DbMaintenance.GetColumnInfosByTableName(表名, false)

相关文章:

【Db First】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列 &#x1f…...

MySQL聚合查询分组查询联合查询

#对应代码练习 -- 创建考试成绩表 DROP TABLE IF EXISTS exam; CREATE TABLE exam ( id bigint, name VARCHAR(20), chinese DECIMAL(3,1), math DECIMAL(3,1), english DECIMAL(3,1) ); -- 插入测试数据 INSERT INTO exam (id,name, chinese, math, engli…...

告别照相馆!使用AI证件照工具HivisionIDPhotos打造在线证件照制作软件

文章目录 前言1. 安装Docker2. 本地部署HivisionIDPhotos3. 简单使用介绍4. 公网远程访问制作照片4.1 内网穿透工具安装4.2 创建远程连接公网地址 5. 配置固定公网地址 前言 本文主要介绍如何在Linux系统使用Docker快速部署一个AI证件照工具HivisionIDPhotos&#xff0c;并结合…...

通信原理第三次实验

实验目的与内容 实验操作与结果 5.1 刚开始先不加入白噪声&#xff0c;系统设计如下&#xff1a; 正弦波参数设置如下&#xff1a; FM设计如下&#xff1a; 延迟设计如下&#xff1a; 两个滤波器设计参数如下&#xff1a; 输出信号频谱为&#xff08;未加入噪声&#xff09;&a…...

【halcon】Metrology工具系列之 get_metrology_object_result_contour

get_metrology_object_result_contour (操作员) 名称 get_metrology_object_result_contour — 查询测量对象的结果轮廓。 签名 get_metrology_object_result_contour( : Contour : MetrologyHandle, Index, Instance, Resolution : ) 描述 get_metrology_object_result_…...

A052-基于SpringBoot的酒店管理系统

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…...

NLP信息抽取大总结:三大任务(带Prompt模板)

信息抽取大总结 1.NLP的信息抽取的本质&#xff1f;2.信息抽取三大任务&#xff1f;3.开放域VS限定域4.信息抽取三大范式&#xff1f;范式一&#xff1a;基于自定义规则抽取&#xff08;2018年前&#xff09;范式二&#xff1a;基于Bert下游任务建模抽取&#xff08;2018年后&a…...

python常见问题-pycharm无法导入三方库

1.运行环境 python版本&#xff1a;Python 3.9.6 需导入的greenlet版本&#xff1a;greenlet 3.1.1 2.当前的问题 由于需要使用到greenlet三方库&#xff0c;所以进行了导入&#xff0c;以下是我个人导入时的全过程 ①首先尝试了第1种导入方式&#xff1a;使用pycharm进行…...

迅为RK3588开发板Android系统开发笔记-使用ADB工具

1 使用 ADB 工具 ADB 英文名叫 Android debug bridge &#xff0c;是 Android SDK 里面的一个工具&#xff0c;用这个工具可以操作管理 Android 模拟器或者真实的 Android 设备&#xff0c;主要的功能如下所示&#xff1a;  在 Android 设备上运行 shell 终端&#xff0c;用命…...

什么是分布式数据库?

随着现代互联网应用和大数据时代的到来&#xff0c;分布式数据库成为了解决大规模数据存储和高并发处理的核心技术之一。本文将通过深入浅出的方式&#xff0c;带你全面理解分布式数据库的概念、工作原理以及底层实现技术。无论你是刚刚接触分布式数据库的开发者&#xff0c;还…...

Leetcode 3363. Find the Maximum Number of Fruits Collected

Leetcode 3363. Find the Maximum Number of Fruits Collected 1. 解题思路2. 代码实现 题目链接&#xff1a;3363. Find the Maximum Number of Fruits Collected 1. 解题思路 这一题是一道陷阱题…… 乍一眼看过去&#xff0c;由于三人的路线完全可能重叠&#xff0c;因此…...

【数据仓库 | Data Warehouse】数据仓库的四大特性

1. 前言 数据仓库是用于支持管理和决策的数据集合&#xff0c;它汇集了来自不同数据源的历史数据&#xff0c;以便进行多维度的分析和报告。数据仓库的四大特点是&#xff1a;主题性&#xff0c;集成性&#xff0c;稳定性&#xff0c;时变性。 2. 主题性(Subject-Oriented) …...

springboot配置多数据源mysql+TDengine保姆级教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pom文件二、yamlDataSourceConfigServiceMapper.xml测试总结 前言 Mybatis-plus管理多数据源&#xff0c;数据库为mysql和TDengine。 一、pom文件 <de…...

dns实验2:反向解析

启动服务&#xff1a; 给虚拟机网卡添加IP地址&#xff1a; 查看有几个IP地址&#xff1a; 打开配置文件&#xff1a; 重启服务&#xff0c;该宽松模式&#xff0c;关闭防火墙&#xff1a; 本机测试&#xff1a; windows测试&#xff1a;&#xff08;本地shell&#xff09;...

ZooKeeper 基础知识总结

先赞后看&#xff0c;Java进阶一大半 ZooKeeper 官网这样介绍道&#xff1a;ZooKeeper 是一种集中式服务&#xff0c;用于维护配置信息、命名、提供分布式同步和提供组服务。 各位hao&#xff0c;我是南哥&#xff0c;相信对你通关面试、拿下Offer有所帮助。 ⭐⭐⭐一份南哥编写…...

npm库xss依赖的使用方法和vue3 中Web富文本编辑器 wangeditor 使用xss库解决 XSS 攻击的方法

npm库xss依赖的使用方法和vue3 中Web富文本编辑器 wangeditor 使用xss库解决 XSS 攻击的方法 1. npm库xss依赖的使用方法1.1 xss库定义1.2 xss库功能 2. vue3 中 wangeditor 使用xss库解决 XSS 攻击的方法和示例2.1 在终端执行如下命令安装 xss 依赖2.2 在使用 wangeditor 的地…...

微信小程序蓝牙writeBLECharacteristicValue写入数据返回成功后,实际硬件内信息查询未存储?

问题&#xff1a;连接蓝牙后&#xff0c;调用小程序writeBLECharacteristicValue&#xff0c;返回传输数据成功&#xff0c;查询硬件响应发现没有存储进去&#xff1f; 解决&#xff1a;一直以为是这个write方法的问题&#xff0c;找了很多相关贴&#xff0c;后续进行硬件日志…...

5G NR:带宽与采样率的计算

100M 带宽是122.88Mhz sampling rate这是我们都知道的&#xff0c;那它是怎么来的呢&#xff1f; 采样率 子载波间隔 * 采样长度 38.211中对于Tc的定义&#xff0c; 在LTE是定义了Ts&#xff0c;在NR也就是5G定义了Tc。 定义这个单位会对我们以后工作中的计算至关重要。 就是在…...

go 和java 编写方式的理解

1. go 推荐写流水账式的代码&#xff08;非贬义&#xff09;&#xff0c;自己管自己。java喜欢封装各种接口供外部调用&#xff0c;让别人来管自己。 2. 因为协程的存在&#xff0c; go的变量作用域聚集在方法内部&#xff0c;即函数不可重入&#xff0c;而java线程的限制&…...

C# 7.1 .Net Framwork4.7 VS2017环境下,方法的引用与调用

方法的调用比较好理解&#xff0c;就是给方法传递实参&#xff0c;执行方法代码。 方法引用涉及委托&#xff0c;委托签名与其引用的方法必须一致。以下demo说明方法调用与引用在写程序时的区别&#xff1a; using System; using System.Collections.Generic; using System.L…...

etcd、kube-apiserver、kube-controller-manager和kube-scheduler有什么区别

在我们部署K8S集群的时候 初始化master节点之后&#xff08;在master上面执行这条初始化命令&#xff09; kubeadm init --apiserver-advertise-address10.0.1.176 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --service…...

每日一题 LCR 057. 存在重复元素 III

LCR 057. 存在重复元素 III 滑动窗口二分查找 有序集合 有lower_bound(num) ,可以找到第一个大于其的数字 class Solution { public:bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) {set<long> win;for(int i0;i<nums.size();i){a…...

使用IDEA编写测试用例,复杂度校验

最近我们公司要求开发人员必须写测试用例&#xff0c;组织了TDD培训&#xff0c;测试驱动开发&#xff0c;同时衡量代码的圈复杂度&#xff0c;我记录下初次使用的过程。 编写测试用例&#xff0c;查看用例覆盖度 1、要编写测试用例&#xff0c;并看下测试用例的覆盖度&#…...

搭建私有云存储

1、安装LNMP环境 yum install nginx -y yum install -y nginx mariadb-server php php-fpm php-mysqlnd systemctl restart nginx.service --- 启动Nginx systemctl start mariadb.service ---启动数据库 mysql -e create database lxdb character set utf8 ---创建数据库 my…...

【从零开始的LeetCode-算法】3304. 找出第 K 个字符 I

Alice 和 Bob 正在玩一个游戏。最初&#xff0c;Alice 有一个字符串 word "a"。 给定一个正整数 k。 现在 Bob 会要求 Alice 执行以下操作 无限次 : 将 word 中的每个字符 更改 为英文字母表中的 下一个 字符来生成一个新字符串&#xff0c;并将其 追加 到原始的…...

深入解析分布式遗传算法及其Python实现

目录 深入解析分布式遗传算法及其Python实现目录第一部分:分布式遗传算法的背景与原理1.1 遗传算法概述1.2 分布式遗传算法的引入1.3 分布式遗传算法的优点与挑战优点:挑战:第二部分:分布式遗传算法的通用Python实现2.1 基本组件的实现第三部分:案例1 - 基于多种交叉与变异…...

gitee:创建仓库,存入本地文件至仓库

一、git下载 git:下载与安装-CSDN博客https://blog.csdn.net/weixin_46001736/article/details/144107485?sharetypeblogdetail&sharerId144107485&sharereferPC&sharesourceweixin_46001736&spm1011.2480.3001.8118 二、创建仓库 1、主页面->右上角新增…...

计算分数的浮点数值

计算分数的浮点数值 C语言代码C 代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 两个整数a和b分别作为分子和分母&#xff0c;既分数 a/b &#xff0c;求它的浮点数值&#xff08;双精度浮点数&#xff0c;保留小数点…...

在 C/C++ 中,volatile 关键字的作用是什么?.volatile 关键字与 const 关键字有什么区别?

volatile关键字用于告诉编译器&#xff0c;被修饰的变量可能会被程序以外的因素&#xff08;如硬件、操作系统等&#xff09;修改&#xff0c;因此每次访问该变量时都应该从内从中读取他的值&#xff0c;而不是使用可能存在的缓存之&#xff0c;这在多线程编程&#xff0c;与硬…...

golang debug调试

1. 本地调试 1&#xff1a;Add Configurations 添加配置文件&#xff08;Run kind &#xff1a;Directory&#xff09; 2&#xff1a;进入run运行窗口 3&#xff1a;debug断点调试模式 1. Resume Program (继续运行) 图标: ▶️ 或 ► 快捷键: F9&#xff08;Windows/Linux&a…...