赞
踩
上一篇,我们使用星火大模型开了一个玩笑,大家实际过程中千万不要像那样去操作。
这一篇,才是真正的从0开始SqlSugar如何使用,依旧是要从实际操作中学习。
第一步,自然是新建一个项目,控制台什么都可以。因为我还没想好怎么做一个完整的项目,那暂且用一个控制台举例吧。
下面自然是从NuGet安装sqlsugar了。注意鉴别需要安装的版本,我这里是安装sqlsugarcore。
安装完成后
看下它所依赖的程序集。
新建一个SqlConnection.cs
在这里,我们来完成SqlSugar连接SQLServer数据库的基本操作。语法上,其实和使用Microsoft.Data.SqlClient很相似,首先创建一个实例,
SqlSugarClient DB = new SqlSugarClient();
SqlSugarClient需要传入参数,我们以第一个为例,需要ConnectionConfig类型的参数
ConnectionConfig如下
下面就是一个具体的例子:
- SqlSugarClient DB = new SqlSugarClient(new ConnectionConfig
- {
- ConnectionString = "Server=192.168.....",
- DbType = DbType.SqlServer,
- IsAutoCloseConnection = true,
- InitKeyType = InitKeyType.SystemTable
- }
- );
名称 | 描述 | 必填 |
---|---|---|
DbType | 数据库类型 | 是 |
ConnectionString | 连接字符串 | 是 |
IsAutoCloseConnection | 自动释放和关闭数据库连接,如果有事务事务结束时关闭,否则每次操作后关闭 | |
InitKeyType | ORM读取自增列和主键的方式 ,建议从特性读取,如果从数据库读取需要SA等高级权限账号 | |
IsShardSameThread | 同线程共享SqlConnection但是不共享SqlSugarClient,非特殊情况不建议使用,特别是异步 | |
ConfigureExternalServices | 一些扩展层务的集成 | |
MoreSettings | 更多设置 | |
SlaveConnectionConfigs | 主从设置 |
然后我们就可以用这个链接数据库了。在写查询代码之前,还要增加一个类,作为映射。
- [SugarTable("T_DouPoClass")]
- public class StudentInfo
- {
- [SugarColumn(ColumnName = "F_Name")]
- public string Name { get; set; }
-
-
- [SugarColumn(ColumnName = "F_Gender")]
- public string Gender { get; set; }
- [SugarColumn(ColumnName = "F_Class")]
- public string Class { get; set; }
-
-
- [SugarColumn(ColumnName = "F_Grade")]
- public string Grade { get; set; }
- }
我们这里类名和表名,属性和栏位名不同,所以需要标记一下。暂时没有使用Id的自增列。
新建一个查询方法:
- public static List<StudentInfo> Query()
- {
- var db = GetInstance();
- return db.Queryable<StudentInfo>().ToList();
- }
根据上面的实例配置,使用Queryable就会查询出T_DouPoClass表中的所有数据,映射到StudentInfo,然后作为list返回。
我们通过下面的代码测试一下返回的结果
- class Program
- {
- static void Main(string[] args)
- {
-
-
- var Students = SqlConnection.Query();
- Console.WriteLine("连接成功");
- foreach (var student in Students)
- {
- Console.WriteLine(student.Name);
- }
- }
- }
打个断点,查看获取的信息。
同样,我们进行增、删、改的动作。
增:
- public static void Insert(StudentInfo student)
- {
- var db = GetInstance();
- db.Insertable<StudentInfo>(student).ExecuteCommand();
- }
改:修改操作一般需要依靠主键,但是我们这里没有主键,所以需要额外指定栏位。
比如陀舍古帝的性别为异火,需要修改,那么就要指定更新Gender这个属性,然后根据Name这个属性进行更新。
- public static bool Update(StudentInfo student)
- {
- var db = GetInstance();
- 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();
- return true;
- }
Updateable可接受的参数有多重,我们这里是传入更新后的对象,可以传入list进行多笔数据的更新。
删:删除需要依赖主键,所以这时候我就把Name设置为了主键(数据库设置)
- [SugarColumn(ColumnName = "F_Name",IsPrimaryKey =true)]
- public string Name { get; set; }
- public static bool Delete(StudentInfo student)
- {
- var db = GetInstance();
- db.Deleteable<StudentInfo>(student).ExecuteCommand();
- return true;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。