当前位置:   article > 正文

SqlSugar入门教程:连接,增、删、改、查

sqlsugarscope连接sqlserver

上一篇,我们使用星火大模型开了一个玩笑,大家实际过程中千万不要像那样去操作。

这一篇,才是真正的从0开始SqlSugar如何使用,依旧是要从实际操作中学习。

第一步,自然是新建一个项目,控制台什么都可以。因为我还没想好怎么做一个完整的项目,那暂且用一个控制台举例吧。

dca7da61f23084b32bee31143be9ed3e.png

下面自然是从NuGet安装sqlsugar了。注意鉴别需要安装的版本,我这里是安装sqlsugarcore。

696b349be19a13d9651a58268a6c4d15.png

安装完成后

ba008bbdad8589fcac5709c198007390.png

看下它所依赖的程序集。

新建一个SqlConnection.cs

b0fafe1acf7ee3159d488a8fdcd41686.png

在这里,我们来完成SqlSugar连接SQLServer数据库的基本操作。语法上,其实和使用Microsoft.Data.SqlClient很相似,首先创建一个实例,

SqlSugarClient DB = new SqlSugarClient();

SqlSugarClient需要传入参数,我们以第一个为例,需要ConnectionConfig类型的参数

fc1a78d4c29f955ecf72587e8f74f83f.png

ConnectionConfig如下

309f64e9bdfeff1556b9c5e847566747.png

下面就是一个具体的例子:

  1. SqlSugarClient DB = new SqlSugarClient(new ConnectionConfig
  2. {
  3. ConnectionString = "Server=192.168.....",
  4. DbType = DbType.SqlServer,
  5. IsAutoCloseConnection = true,
  6. InitKeyType = InitKeyType.SystemTable
  7. }
  8. );
名称描述必填
DbType数据库类型
ConnectionString连接字符串
IsAutoCloseConnection自动释放和关闭数据库连接,如果有事务事务结束时关闭,否则每次操作后关闭
InitKeyTypeORM读取自增列和主键的方式 ,建议从特性读取,如果从数据库读取需要SA等高级权限账号
IsShardSameThread同线程共享SqlConnection但是不共享SqlSugarClient,非特殊情况不建议使用,特别是异步
ConfigureExternalServices一些扩展层务的集成
MoreSettings更多设置
SlaveConnectionConfigs主从设置

然后我们就可以用这个链接数据库了。在写查询代码之前,还要增加一个类,作为映射。

  1. [SugarTable("T_DouPoClass")]
  2. public class StudentInfo
  3. {
  4. [SugarColumn(ColumnName = "F_Name")]
  5. public string Name { get; set; }
  6. [SugarColumn(ColumnName = "F_Gender")]
  7. public string Gender { get; set; }
  8. [SugarColumn(ColumnName = "F_Class")]
  9. public string Class { get; set; }
  10. [SugarColumn(ColumnName = "F_Grade")]
  11. public string Grade { get; set; }
  12. }

我们这里类名和表名,属性和栏位名不同,所以需要标记一下。暂时没有使用Id的自增列。

新建一个查询方法:

  1. public static List<StudentInfo> Query()
  2. {
  3. var db = GetInstance();
  4. return db.Queryable<StudentInfo>().ToList();
  5. }

根据上面的实例配置,使用Queryable就会查询出T_DouPoClass表中的所有数据,映射到StudentInfo,然后作为list返回。

我们通过下面的代码测试一下返回的结果

  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. var Students = SqlConnection.Query();
  6. Console.WriteLine("连接成功");
  7. foreach (var student in Students)
  8. {
  9. Console.WriteLine(student.Name);
  10. }
  11. }
  12. }

打个断点,查看获取的信息。

74f5387ac27548a518945e6142955c2f.png

同样,我们进行增、删、改的动作。

增:

  1. public static void Insert(StudentInfo student)
  2. {
  3. var db = GetInstance();
  4. db.Insertable<StudentInfo>(student).ExecuteCommand();
  5. }

43d27cb7d65adddc74965a9f6966d444.png

5e40c276f05990e737ba4c13c6786b10.png

改:修改操作一般需要依靠主键,但是我们这里没有主键,所以需要额外指定栏位。

比如陀舍古帝的性别为异火,需要修改,那么就要指定更新Gender这个属性,然后根据Name这个属性进行更新。

  1. public static bool Update(StudentInfo student)
  2. {
  3. var db = GetInstance();
  4. db.Updateable<StudentInfo>(new StudentInfo {Grade = student.Grade,Class= student.Class,Name= student.Name, Gender="异火"}).UpdateColumns(s => new {s.Gender}).WhereColumns(s => s.Name).ExecuteCommand();
  5. return true;
  6. }

7c90e174c74ab2484702874e0d299e61.png

Updateable可接受的参数有多重,我们这里是传入更新后的对象,可以传入list进行多笔数据的更新。

913916e18d8e14d96c2261ba54f1264c.png

删:删除需要依赖主键,所以这时候我就把Name设置为了主键(数据库设置)

  1. [SugarColumn(ColumnName = "F_Name",IsPrimaryKey =true)]
  2. public string Name { get; set; }
  1. public static bool Delete(StudentInfo student)
  2. {
  3. var db = GetInstance();
  4. db.Deleteable<StudentInfo>(student).ExecuteCommand();
  5. return true;
  6. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/134842
推荐阅读
相关标签
  

闽ICP备14008679号