NET中使用SQLSugar操作sqlserver数据库

目录

一、SqlSugar是什么?

二、迁移和建表

1.建立实体

2.创建上下文类

3.在Program中添加SqlSugar服务

4.在控制器中注入上下文类

三、简单实现CURD功能

总结


一、SqlSugar是什么?

SqlSugar是一款老牌 .NET 开源ORM框架。

主要特点:简单易用、功能齐全、高性能、轻量级、服务齐全、支持全自动分表组件,SAAS分库,大数据处理的ORM。

二、迁移和建表

安装包: SqlSugarCore 

1.建立实体

代码如下(示例):

   [SugarTable("T_Book")]//设置表名为TableName,如果不设置取类名为表名public class Book{[SugarColumn(IsIdentity = true, IsPrimaryKey = true)]public int Id { get; set; }[SugarColumn(Length =50)]//设置长度public string AuthorName { get; set; }public float?Price { get; set; }[SugarColumn(IsNullable = true)]//可以为NULLpublic DateTime PubTime { get; set; }public string Title { get; set; }}

 

2.创建上下文类

代码如下(示例):

 public class SqlSugarContext{public readonly ISqlSugarClient db;public SqlSugarContext(ISqlSugarClient db){this.db = db;}public void CreateTable(){//建库 如果不存在创建数据库,存在不会重复创建db.DbMaintenance.CreateDatabase();//建表db.CodeFirst.SetStringDefaultLength(100).//设置默认字符串类型的字段长度BackupTable().InitTables(new Type[] //支持多表创建{typeof(Book),});         }   }

3.在Program中添加SqlSugar服务

代码如下(示例):

builder.Services.AddHttpContextAccessor();
//注册SqlSugar用AddScoped
builder.Services.AddScoped(sp => new SqlSugarContext(new SqlSugarClient(new ConnectionConfig(){ConnectionString = builder.Configuration.GetConnectionString("SqlServer:Connection"), //数据库连接串DbType = DbType.SqlServer,      //数据库类型IsAutoCloseConnection = true, //自动释放MoreSettings = new ConnMoreSettings(){SqlServerCodeFirstNvarchar = true,//建表字符串默认Nvarchar}},db =>{db.Aop.OnLogExecuting = (sql, pars) =>{Console.WriteLine(sql);//生成执行Sql语句};})    
));

4.在控制器中注入上下文类

代码如下(示例):

    [Route("api/[controller]/[action]")][ApiController]public class InitializationController : ControllerBase{public readonly SqlSugarContext _context;public InitializationController(SqlSugarContext context) { this._context = context;}/// <summary>/// 创建表/// </summary>/// <returns></returns>[HttpGet]public IActionResult CreateTable( ){_context.CreateTable();           return Ok("执行成功!");}}

 运行项目,执行创建表的接口

再去数据库看,库和表都建立好了

如果想增加新的字段、修改字段,建新实体再次执行该接口即可

三、简单实现CURD功能

代码如下(示例):

 [Route("api/[controller]/[action]")][ApiController]public class BookController : ControllerBase{public readonly SqlSugarContext _context;public BookController(SqlSugarContext context) { this._context = context;}/// <summary>/// 新增/// </summary>/// <returns></returns>[HttpPost]public IActionResult InsertBook(Book  req){int result= _context.db.Insertable<Book>(req).ExecuteCommand();return Ok($"成功插入{result}条");}/// <summary>/// 编辑/// </summary>/// <returns></returns>[HttpPost]public IActionResult UpdateBook(Book req){int result = _context.db.Updateable<Book>(req).ExecuteCommand();return Ok($"成功修改{result}条");}/// <summary>/// 删除/// </summary>/// <param name="Id"></param>/// <returns></returns>[HttpGet]public IActionResult DeleteBook(int Id){int result = _context.db.Deleteable<Book>().In(Id).ExecuteCommand();return Ok($"成功删除{result}条");}/// <summary>/// 查询/// </summary>/// <param name="pagenumber"></param>/// <param name="pageSize"></param>/// <returns></returns>[HttpGet]public IActionResult QueryBook(int pagenumber=1, int pageSize=20) {int totalCount = 0;//单表分页var page = _context.db.Queryable<Book>().ToPageList(pagenumber, pageSize, ref totalCount);var data = new{page,totalCount};return Ok(data);}}   


总结

SqlSugar比起Migrationn数据迁移的方式建库建表,简化很多。ISqlSugarClient封装了常用的CURD功能,并且支持批量操作,在性能方面也不错,是很容易上手的一款orm框架。

更多使用方法查看官方文档

 https://www.donet5.com/Home/Doc

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

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

相关文章

致远互联FE协作办公平台 editflow_manager.jsp SQL注入漏洞

漏洞描述 致远互联FE协作办公平台是一款为企业提供全方位协同办公解决方案的产品。它集成了多个功能模块&#xff0c;旨在帮助企业实现高效的团队协作、信息共享和文档管理。致远互联FE协作办公平台editflow_manager存在sql注入漏洞&#xff0c;攻击者可以获得敏感信息。 资产…

LeetCode-环形链表问题

1.环形链表&#xff08;141&#xff09; 题目描述&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统…

三叠云工程劳务管理,优化建筑施工管理,提升效率与质量

随着建筑行业的蓬勃发展&#xff0c;工程施工现场管理变得愈发复杂。传统的人员管理方式已经无法满足企业快速发展的需求。如何提高施工效率、优化人力资源管理成为了建筑企业亟待解决的问题。逐渐走向数字化的工程建设行业&#xff0c;急需一种足以匹配这一时代变革、高效管理…

渗透测试——1.3计算机网络基础

一、黑客术语 1、肉鸡&#xff1a;被黑客攻击电脑&#xff0c;可以受黑客控制不被发现 2、端口&#xff08;port&#xff09;&#xff1a;数据传输的通道 3、弱口令&#xff1a;强度不高&#xff0c;容易被猜到的口令、密码 4、客户端&#xff1a;请求申请电脑&#xff08;…

SQL实践篇(二):为什么微信用SQLite存储聊天记录?

文章目录 简介什么是SQLite在python中使用SQLite通过SQLite查询微信的聊天记录参考文献 简介 SQLite是一个嵌入式的开源数据库引擎&#xff0c;大小只有3M左右&#xff0c;因此我们可以将整个SQLite嵌入到应用中&#xff0c;而不再需要采用传统的客户端/服务器&#xff08;CS&…

《试题与研究》期刊发表投稿方式

《试题与研究》杂志是面向全国公开发行的国家CN级权威教育期刊。创刊以来一直以服务教育服务学生为办刊宗旨&#xff0c;以优秀的内容质量和编校质量深受广大读者好评&#xff0c;其权威性、导向性、针对性、实用性在全国教育期刊中独树一帜。为推动教育科研事业的发展&#xf…

【K8S in Action】服务:让客户端发现pod 并与之通信(2)

一 通过Ingress暴露服务 Ingress (名词&#xff09; 一一进入或进入的行为&#xff1b;进入的权利&#xff1b;进入的手段或地点&#xff1b;入口。一个重要的原因是每个 LoadBalancer 服务都需要自己的负载均衡器&#xff0c; 以及 独有的公有 IP 地址&#xff0c; 而 Ingres…

CentOS进入单用户模式

一、重启 二、出现内核选项 按“e” 三、编辑这一行 输入 rw init/sysroot/bin/sh 四、进入单用户模式 ctrlx 进入 五、切换目录 chroot /sysroot 六、然后你就操作你的系统了。 修改密码等等

httprunner环境变量

前言 我的上一篇文章讲了httprunner的基本介绍&#xff0c;这篇文章呢主要来给大家介绍httprunner中的环境变量。 一般来说&#xff0c;在进行实际应用的开发过程中&#xff0c;应用会拥有不同的运行环境&#xff0c;通常会有以下环境&#xff1a; 本地开发环境 测试环境 生产…

8 缺失数

无脑蛮力 #include <iostream> #include <vector>using namespace::std; using std::cout; using std::cin; int main() {int num;vector<int> nums;while(cin >> num){nums.push_back(num);if(getchar()\n) {break;}}int t,nnums.size();for(int i0…

MyBatis——MyBatis的动态SQL

MyBatis的动态SQL 创建工程&#xff1a; 1.什么是动态SQL? MyBatis的映射文件中支持在基础SQL上添加一些逻辑操作&#xff0c;并动态拼接成完整的SQL之后再执行&#xff0c;以达到SQL复用、简化编程的效果。 2.if标签 我们根据实体类的不同取值&#xff0c;使用不同的SQL语…

每次maven刷新jdk都要重新设置

pom.xml <java.version>17</java.version> 改为<java.version>1.8</java.version>