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;
     }

详情看官方文档

相关推荐
实名上网宋凯宣8 小时前
Django
后端·python·django
利威尔xu10 小时前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
逃逸线LOF10 小时前
Ribbon负载均衡原理(Irule组件、源码分析)
后端·spring cloud·ribbon
慢云智慧空间10 小时前
从设备智能到空间理解,空间智能终端解决方案商如何重新定义行业标准
后端
利威尔xu11 小时前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
薛定谔的猫-菜鸟程序员11 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
IT_陈寒13 小时前
SpringBoot多环境配置把我坑惨了,这个踩坑经验你最好看看
前端·人工智能·后端
码事漫谈13 小时前
DeepSeek 搞了个 "Super-agent",但不是超级智能
后端
吴凡wudianmei13 小时前
从 0 搭一个 AI Agent(四):SSE 跑通之后,三处“契约错配”与它们的修复边界
前端·后端·aigc
小兔子14 小时前
defer 的参数在写下那一刻就求值了,循环里这样写会踩坑
后端