ASP.NET Core中SqlSugar基本使用

创建数据模型

复制代码
 public class News
 {
     [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
     public int Id { get; set; }
     //nvarchar带中文比较好
     [SugarColumn(ColumnDataType = "nvarchar(30)")]
     public string Title { get; set; }
     [SugarColumn(ColumnDataType = "text")]
     public string Content { get; set; }
     public DateTime Time { get; set; }
     public int BrowseCount { get; set; }
     public int LikeCount { get; set; }
 ​
     public int TypeId { get; set; }
     public int WriterId { get; set; }
     /// <summary>
     /// 类型,不映射到数据库
     /// </summary>
     [SugarColumn(IsIgnore = true)]
     public TypeInfo TypeInfo { get; set; }
 ​
 ​
 }

注册依赖

复制代码
 //注册上下文:AOP里面可以获取IOC对象,如果有现成框架比如Furion可以不写这一行
 builder.Services.AddHttpContextAccessor();
 //注册SqlSugar用AddScoped
 builder.Services.AddScoped<ISqlSugarClient>(s =>
 {
     //Scoped用SqlSugarClient 
     SqlSugarClient sqlSugar = new SqlSugarClient(new ConnectionConfig()
     {
         DbType = SqlSugar.DbType.SqlServer,
         ConnectionString = "Server=LAPTOP-F352TNCB\\SQLEXPRESS;Database=MyTestDB;Trusted_Connection=True;Encrypt=True;TrustServerCertificate=True;",
         IsAutoCloseConnection = true,
     });
     return sqlSugar;
 });

创建表

复制代码
 private readonly ISqlSugarClient db;
 ​
 public GetString(ISqlSugarClient db)
 {
     this.db = db;
 ​
     db.DbMaintenance.CreateDatabase();//达梦和Oracle不支持建库
 ​
     //建表(看文档迁移)
     db.CodeFirst.InitTables<News>(); //所有库都支持    
 ​
 ​
 ​
 }

增删改查

复制代码
 public List<News> Get()
 {
     //查询表的所有
     var list = db.Queryable<News>().ToList();
     return list;
 }
 ​
 public bool Add()
 {
     int result=db.Insertable(new News() { Id=1,Title="hhh",Content="dfafasaf" }).ExecuteCommand();
     if (result != 0)
     {
         return true;
     }
     else
     {
         return false;
     }
 }
 ​
 public bool Update()
 {
     int result = db.Updateable(new News() { Id = 2, Title = "qqq", Content = "1111111" }).ExecuteCommand();
     if (result != 0)
     {
         return true;
     }
     else
     {
         return false;
     }
 }
 ​
 public bool Delete()
 {
     int result = db.Deleteable<News>().Where(it => it.Id == 2).ExecuteCommand();
     if (result != 0)
     {
         return true;
     }
     else
     {
         return false;
     }

详情看官方文档

相关推荐
桦说编程2 小时前
深入解析CompletableFuture源码实现(2)———双源输入
java·后端·源码
舒一笑2 小时前
大模型时代的程序员成长悖论:如何在AI辅助下不失去竞争力
后端·程序员·掘金技术征文
lang201509282 小时前
Spring Boot优雅关闭全解析
java·spring boot·后端
小羊在睡觉3 小时前
golang定时器
开发语言·后端·golang
用户21411832636023 小时前
手把手教你在魔搭跑通 DeepSeek-OCR!光学压缩 + MoE 解码,97% 精度还省 10-20 倍 token
后端
追逐时光者3 小时前
一个基于 .NET 开源、功能强大的分布式微服务开发框架
后端·.net
刘一说4 小时前
Spring Boot 启动慢?启动过程深度解析与优化策略
java·spring boot·后端
壹佰大多4 小时前
【spring如何扫描一个路径下被注解修饰的类】
java·后端·spring
间彧4 小时前
Java双亲委派模型的具体实现原理是什么?
后端
间彧4 小时前
Java类的加载过程
后端