国产优秀ORM框架SqlSugar的使用方法,实例解析

数据库 其他数据库
以下是对SqlSugar的详细介绍及其相比其他ORM框架的优点。通过使用SqlSugar,可以简化数据库操作,提高开发效率。希望以上内容对您有所帮助。

SqlSugar是一个轻量级ORM框架,专门用于.NET平台,可以简化数据库操作,提高开发效率。它支持多种数据库,包括MySQL、SqlServer、Oracle等,提供了丰富的功能和灵活的配置选项。

下面将详细介绍SqlSugar的使用方法及其相比其他ORM框架的优点。

一、SqlSugar的安装和配置

使用NuGet包管理器安装SqlSugar。 在Visual Studio中,右击项目,选择“管理NuGet程序包”,搜索“SqlSugar”,选择安装。

配置数据库连接字符串。 在app.config或web.config文件中,添加如下配置节:

<connectionStrings>
 <add name="DefaultConnection" connectionString="Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=123456;" providerName="System.Data.SqlClient" />
</connectionStrings>

创建实体类。 创建一个类,用于映射数据库表的结构,例如:

public class User
{
         public int Id { get; set; }
         public string Name { get; set; }
         public int Age { get; set; }
}

二、SqlSugar的基本用法

初始化SqlSugar对象。

using SqlSugar;
...
var connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
var db = new SqlSugarClient(new ConnectionConfig()
{
       ConnectionString = connectionString,
       DbType = DbType.SqlServer,
       IsAutoCloseConnection = true,
       InitKeyType = InitKeyType.Attribute
});

增删改查操作。

// 插入数据
var user = new User { Name = "张三", Age = 20 };
var id = db.Insertable(user).ExecuteReturnIdentity();

// 更新数据
user.Age = 25;
db.Updateable(user).ExecuteCommand();

// 删除数据
db.Deleteable<User>().Where(u => u.Id == id).ExecuteCommand();

// 查询数据
var userList = db.Queryable<User>().ToList();

高级查询。

// 条件查询
var userList = db.Queryable<User>().Where(u => u.Age > 18).ToList();

// 分页查询
var userList = db.Queryable<User>().Where(u => u.Age > 18).ToPageList(1, 10, ref totalCount);

// 排序查询
var userList = db.Queryable<User>().OrderBy(u => u.Age, OrderByType.Desc).ToList();

// 连表查询
var userList = db.Queryable<User, Order>((u, o) => new JoinQueryInfos(JoinType.Left, u.Id == o.UserId))
 .Select((u, o) => new { u.Name, o.OrderNo })
 .ToList();

事务操作。

// 开启事务
db.Ado.BeginTran();

try
{
       // 执行多个操作
       db.Insertable(user1).ExecuteCommand();
       db.Insertable(user2).ExecuteCommand();

       // 提交事务
       db.Ado.CommitTran();
}
catch (Exception ex)
{
         // 回滚事务
         db.Ado.RollbackTran();
}

三、SqlSugar相比其他ORM框架的优点

  • 简单易用。 SqlSugar提供了简洁的API,可以快速上手,减少学习成本。
  • 性能优越。 SqlSugar采用了一系列优化措施,如缓存、预编译等,提高了数据库操作的性能。
  • 支持多种数据库。 SqlSugar支持多种数据库,可以轻松切换数据库类型,减少了对数据库的依赖。
  • 提供丰富的功能。 SqlSugar提供了丰富的功能,如分页查询、事务操作、连接查询等,满足了各种复杂的业务需求。
  • 提供灵活的配置选项。 SqlSugar提供了许多配置选项,可以根据需求进行灵活配置,满足不同项目的需求。

以上是对SqlSugar的详细介绍及其相比其他ORM框架的优点。通过使用SqlSugar,可以简化数据库操作,提高开发效率。希望以上内容对您有所帮助。

【示例源代码】

using System;
using System.Configuration;
using SqlSugar;

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
        var db = new SqlSugarClient(new ConnectionConfig()
        {
            ConnectionString = connectionString,
            DbType = DbType.SqlServer,
            IsAutoCloseConnection = true,
            InitKeyType = InitKeyType.Attribute
        });

        var user = new User { Name = "张三", Age = 20 };
        var id = db.Insertable(user).ExecuteReturnIdentity();

        user.Age = 25;
        db.Updateable(user).ExecuteCommand();

        db.Deleteable<User>().Where(u => u.Id == id).ExecuteCommand();

        var userList = db.Queryable<User>().ToList();

        Console.WriteLine("查询结果:");
        foreach (var u in userList)
        {
            Console.WriteLine($"Id: {u.Id}, Name: {u.Name}, Age: {u.Age}");
        }

        Console.ReadLine();
    }
}

以上是一个简单的使用SqlSugar的示例代码。

责任编辑:姜华 来源: 今日头条
相关推荐

2024-01-04 08:43:50

Autofac容器.NET

2023-11-16 08:34:23

.NETORM框架

2012-07-26 15:11:52

guzz

2011-08-19 13:51:12

2010-08-09 10:16:01

FlexBuilder

2010-10-08 14:27:25

JavascriptSplit

2011-06-14 10:18:58

QThread Qt 线程

2011-08-29 15:58:51

Lua函数

2009-11-25 10:02:27

PHP会话Sessio

2013-06-08 17:09:35

Android开发移动开发XML解析

2024-03-05 09:03:30

.NETMQTT协议MQTTnet

2011-06-30 16:53:18

QT Creator TableWidge

2023-07-05 08:28:35

Core 模块SqlSugar

2011-08-23 09:44:28

LUA脚本

2023-12-22 10:40:16

Mapster.NET开源

2011-02-24 13:09:10

FireFTP

2011-08-11 17:00:33

iPhone数据库SQLite

2012-01-13 09:55:54

jQuery

2009-11-24 16:18:14

PHP5析构函数

2023-12-25 08:55:35

.NET日志框架Serilog
点赞
收藏

51CTO技术栈公众号