小工具知识网

当前位置: 首页 > 行业知识 > C#ORM框架SqlSugar安装及使用(以MySql、sqlite为示例)

行业知识

C#ORM框架SqlSugar安装及使用(以MySql、sqlite为示例)

2026-11-10 01:47:09 来源:互联网转载

目录

一、安装

二、使用(Mysql)

1、获取连接字符串

2、获取一个SqlSugarClient实例

3、构建一个表模型(名字不同,可通过SugarTable特性指定表)

4、使用SqlSugar框架命令操作数据库(增删改查)

二、使用(sqlite)

1、配置

2、创建表

3、增删改查

4、以导航方式增加 

5、以导航方式更新

6、以导航方式查询


一、安装

        通过NuGet包管理器搜索SqlSugar(MySql还要安装MySql.Data、Newtonsoft.Json)包并安装。

二、使用(Mysql)

1、获取连接字符串

示例代码:

        public static string GetConStr()        {            var builder = new MySqlConnectionStringBuilder()            {                Server = "localhost",                UserID = "root",                Password = "123456",                Database = "test"            };            return builder.ConnectionString;        }

2、获取一个SqlSugarClient实例

示例代码:

        public static SqlSugarClient GetSql()        {            string _connectstr = GetConStr();            SqlSugarClient _client = new (new ConnectionConfig            {                ConnectionString = _connectstr,                DbType = DbType.MySql,                IsAutoCloseConnection = true,                InitKeyType = InitKeyType.Attribute            });            return _client;        }

3、构建一个表模型(名字不同,可通过SugarTable特性指定表)

示例代码:

    [SugarTable("teacher")]    class Student    {         public int ID { get; set; }        public string Name { get; set; }            }

4、使用SqlSugar框架命令操作数据库(增删改查)

示例代码:

        public static void Main()        {            SqlSugarClient client = GetSql();            try            {                client.Ado.CheckConnection();            }            catch (Exception ex)            {                Console.WriteLine(ex.ToString());            }            //SqlSugarClient?  myclient= GetSqlSugarClient;            Student stu = new() { ID = 2, Name = "lisi" };            //var res = client.Queryable().Where(it => (it.ID.Equals(stu.ID))&&it.Name=="刘老师").First();            var res = client.Queryable().Where(it =>it.Name.Contains("老师")).First();            //var res = client.Queryable().First(it => (it.ID.Equals(stu.ID)) && it.Name == stu.Name);            Console.WriteLine(res.Name);            List res2=client.Queryable().ToList();            foreach (Student student in res2)                Console.WriteLine(student.Name);        }

二、使用(sqlite)

sqlite官网下载sqlite及其配套工具

1、配置

            var fd = new OpenFileDialog();            fd.InitialDirectory = Directory.GetCurrentDirectory();            fd.Title = "选择数据库";            fd.ShowDialog();            if (!string.IsNullOrEmpty(fd.FileName))            {                _scope = new SqlSugarScope(new ConnectionConfig()                {                    ConnectionString = $"data source={fd.FileName}",                    DbType = DbType.Sqlite,                    IsAutoCloseConnection = true,                });            }

2、创建表

 _scope.CodeFirst.InitTables(); _scope.CodeFirst.InitTables();

3、增删改查

_scope.Insertable(new Student() { Id = 9, Score = 99, Name = "Auston", SchoolId = 0 }).ExecuteCommand();         //增_scope.Deleteable().Where(m => m.Id == 0).ExecuteCommand();                     //删_scope.Updateable(new Student() { Id = 3, Score = 65, Name = "Kimi" }).ExecuteCommand();   //根据主键更改var list = _scope.Queryable().ToList();                      //查

4、以导航方式增加 

List list = new List(){    new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 99, Name = "Auston7" },    new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 59, Name = "Tom7"},    new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 100, Name = "kimi7" }};List list8 = new List(){    new Student() { Id =SnowFlakeSingle.Instance.NextId(), Score = 99, Name = "Auston8" },    new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 59, Name = "Tom8"},    new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 100, Name = "kimi8" }};List Schools = new List(){    new School() { Id=7,Name="NiuDun",Students=list},    new School() { Id=8,Name="FuDan",Students=list8}};_scope.InsertNav(Schools).Include(i => i.Students).ExecuteCommand();      //插入导航

5、以导航方式更新

List list = new List(){    new Student() { Id = SnowFlakeSingle.instance.NextId(), Score = 50, Name = "Auston7" },    new Student() { Id = SnowFlakeSingle.instance.NextId(), Score =39, Name = "Tom7"},};List Schools = new List(){    new School() { Id=7,Name="JianQiao",Students=list},};_scope.UpdateNav(Schools).Include(m=>m.Students).ExecuteCommand();

6、以导航方式查询

//Data.Add(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss"));var schools = _scope.Queryable().Includes(m =>m.Students).OrderBy(i=>i.Id,OrderByType.Desc).ToList();//var stus = schools[3].Students;//var stus8 = schools[4].Students;//foreach (var student in stus) { Data.Add($"\t{student.SchoolId} {student.Id} {student.Name} : {student.Score}"); }//foreach (var student in stus8) { Data.Add($"\t{student.SchoolId} {student.Id}{student.Name} : {student.Score}"); }

上一篇:揭秘京东侧边栏调整秘籍,轻松将其往下放置的技巧!

下一篇:包含北大的青鸟消防主机怎么查询烟感的词条