C#给SqlSugar封装一个单例类

.NET兼职社区

可以直接用,轻量方便,无需重复造轮子。 这里只对CRUD进行封装,我的应用比较简单。

csharp 复制代码
using SqlSugar;
using System.Collections.Generic;


namespace MusicApp.Assist
{
    internal class SqlSugarAssist
    {
        private static readonly object _lock = new object();
        private static SqlSugarAssist _instance;
        private readonly ISqlSugarClient _db;
        private SqlSugarAssist(string connectionString)
        {
            _db = new SqlSugarClient(new ConnectionConfig()
            {
                ConnectionString = connectionString,
                DbType = DbType.SqlServer, // 或其他数据库类型
                IsAutoCloseConnection = true
            });
        }

        ///单例实现
        public static SqlSugarAssist GetInstance(string connectionString) 
        {
            if (_instance == null) 
            {
                lock (_lock) {
                    if (_instance == null) 
                    {
                        _instance=new SqlSugarAssist(connectionString); 


                    }
                }
            }
            return _instance;
        }



        // 插入操作
        public int Insert<T>(T entity) where T : class,new()
        {
            return _db.Insertable(entity).ExecuteCommand();
        }

        // 删除操作
        public int Delete<T>(dynamic list) where T : class, new()
        {
            return _db.Deleteable<T>(list).ExecuteCommand();
        }

        // 更新操作
        public int Update<T>(T entity) where T : class, new()
        {
            return _db.Updateable(entity).ExecuteCommand();
        }

        // 查询操作
        public List<T> Select<T>()
        {
            return _db.Queryable<T>().ToList();
        }

    }
}
相关推荐
用户128526116025 小时前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java
Linsk5 小时前
组件 = 模板 + 业务逻辑
java·前端·vue.js
唐青枫6 小时前
别只会反射:C#.NET Emit 动态生成代码实战详解
c#·.net
星沉远浦6 小时前
用Gemini高效解决Java代码报错难以定位的问题
java
用户2986985301410 小时前
Word 文档字符级格式化:Java 实现方案详解
java·后端
咕白m62510 小时前
.NET 环境下 Word 超链接批量提取方案
c#·.net
笨鸟飞不快10 小时前
从单个服务到集群:一次完整的性能排查复盘
java·前端
用户917215619021110 小时前
C# 通信协议增量解析:用状态机处理半包和粘包
c#
荣码10 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
SamDeepThinking10 小时前
Java微服务练习方式
java·后端·微服务