分享一个 .Net core Console 项目使用 SqlSugar 的详细例子

image

前言

SqlSugar 是一款老牌的 .NET 开源 ORM 框架,性能高,功能全面,使用简单,支持 .NET FrameWork、.NET Core3.1、.NET5、.NET6、.NET7、.NET8、.NET9 等版本,线上论坛非常活跃,今天给大伙分享一个 .Net core Console 项目使用 SqlSugar 的详细例子。

Step By Step 步骤

  1. 创建一个 .NET Core Console 项目

  2. 安装 SqlSugarCore Nuget 包,当前使用的是

    <PackageReference Include="SqlSugarCore" Version="5.1.4.69" />
    
  3. 在 Program.cs 中注入 SqlSuger(留意注释

    using SqlSugar;
    
    ServiceCollection services = new ServiceCollection();
    
    // 注入 单例 ISqlSugarClient
    services.AddSingleton<ISqlSugarClient>(s =>
    {
    	SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()
    	{
    		DbType = SqlSugar.DbType.MySql,
    		ConnectionString = "server=localhost;port=3306;user=root;password=db123456;database=testdb",
    		IsAutoCloseConnection = true,
    	}, db =>
    	{
    		// 单例参数配置,所有上下文生效,如果不需要可注释掉
    		db.Aop.OnLogExecuting = (sql, pars) =>
    		{
    			// 在日志里打印 sql 语句
    			logger.LogInformation(sql);
    		};
    	}
    	);
    	return sqlSugar;
    });
    
  4. 新建数据层文件 DaoUtil.cs,写 CRUD 代码(留意注释

    using SqlSugar;
    
    class DaoUtil
    {
    	private readonly ISqlSugarClient db;
    
    	// 构造方法注入 ISqlSugarClient
    	public DaoUtil(ISqlSugarClient db)
    	{
    		this.db = db;
    	}
    
    	/// <summary>
    	/// 增加数据
    	/// </summary>
    	/// <param name="entity"></param>
    	/// <returns></returns>
    	public int InsertData(deviceData entity)
    	{
    		var sql = @"INSERT INTO device_data (id,
    						dev_type,
    						dev_code,
    						dev_name,
    						item_name,
    						item_xh,
    						item_value,
    						item_unit,
    						item_alarm_level,
    						deal_flag,
    						create_time,
    						create_by)
    					  VALUE (@id,
    						@dev_type,
    						@dev_code,
    						@dev_name,
    						@item_name,
    						@item_xh,
    						@item_value,
    						@item_unit,
    						@item_alarm_level,
    						@deal_flag,
    						@create_time,
    						@create_by)";
    
    		var parameters = new List<SugarParameter>(){
    			new SugarParameter("@id",entity.id),
    			new SugarParameter("@dev_type",entity.dev_type),
    			new SugarParameter("@dev_code",entity.dev_code),
    			new SugarParameter("@dev_name",entity.dev_name),
    			new SugarParameter("@item_name",entity.item_name),
    			new SugarParameter("@item_xh",entity.item_xh),
    			new SugarParameter("@item_value",entity.item_value),
    			new SugarParameter("@item_unit",entity.item_unit),
    			new SugarParameter("@item_alarm_level",entity.item_alarm_level),
    			new SugarParameter("@deal_flag",entity.deal_flag),
    			new SugarParameter("@create_time",entity.create_time),
    			new SugarParameter("@create_by",entity.create_by)
    		};
    		var result = db.Ado.ExecuteCommand(sql, parameters);
    		return result;
    	}
    }
    
  5. 在 Program.cs 中注入 DaoUtil 类,调用 CRUD 方法

    // 注入 DaoUtil 类
    services.AddScoped<DaoUtil>();
    
    // 调用 DaoUtil 的方法
    using (var sp = services.BuildServiceProvider())
    {
    	var demo = sp.GetRequiredService<DaoUtil>();
    	deviceData entity = new deviceData();
    	demo.InsertData(entity);
    }	
    
  6. 运行程序进行测试

结语

  1. SqlSugar 执行原生 SQL 的功能非常强大,如果不用它的 ORM 功能,完全可以当成一个 ADOHelper 使用,是 EF Core 的一个很好的补充,我个人一般就是这么使用的。
  2. SqlSugar 的 ORM 的性能也很不错,如果不喜欢 EF Core,用用 SqlSugar 的 ORM 也不错。
  3. 注意 MySQL 参数在这里用的也是 @name 形式,而不是原生的 ? 符号

附录:完整的 Program.cs 代码

using SqlSugar;

ServiceCollection services = new ServiceCollection();

// 注入 单例 ISqlSugarClient
services.AddSingleton<ISqlSugarClient>(s =>
{
    SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()
    {
        DbType = SqlSugar.DbType.MySql,
        ConnectionString = "server=localhost;port=3306;user=root;password=db.server!hx@123;database=hospital",
        IsAutoCloseConnection = true,
    }, db =>
    {
        // 单例参数配置,所有上下文生效,如果不需要可注释掉
        db.Aop.OnLogExecuting = (sql, pars) =>
        {
            // 在日志里打印 sql 语句
            logger.LogInformation(sql);
        };
    }
    );
    return sqlSugar;
});

// 注入 DaoUtil 类
services.AddScoped<DaoUtil>();

// 调用 DaoUtil 的方法
using (var sp = services.BuildServiceProvider())
{
    var demo = sp.GetRequiredService<DaoUtil>();
    deviceData entity = new deviceData();
    demo.InsertData(entity);
}	

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。

相关推荐

  1. 一个SqlSugar实际案例

    2024-06-07 10:32:06       31 阅读
  2. 深入理解SqlSugar ORM框架使用与实战

    2024-06-07 10:32:06       31 阅读
  3. WPF 结合 MVVM模式下SqlSugar ORM框架使用

    2024-06-07 10:32:06       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 10:32:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 10:32:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 10:32:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 10:32:06       18 阅读

热门阅读

  1. shell脚本对编码和行尾符敏感吗

    2024-06-07 10:32:06       9 阅读
  2. 2-链表-61-相交节点-LeetCode160

    2024-06-07 10:32:06       7 阅读
  3. GaussDB 数据库的事务管理

    2024-06-07 10:32:06       8 阅读
  4. Python语言回归:深入探索与实战应用

    2024-06-07 10:32:06       9 阅读
  5. 8086 汇编笔记(十一):内中断

    2024-06-07 10:32:06       9 阅读
  6. OC和Swift的区别,发送消息和执行方法的区别

    2024-06-07 10:32:06       6 阅读
  7. AWS Load Balancer Controller 实践

    2024-06-07 10:32:06       7 阅读
  8. iOS查看、分离、合并库framework的架构

    2024-06-07 10:32:06       7 阅读
  9. 图论第5天

    2024-06-07 10:32:06       8 阅读