using MES.Service.util; using SqlSugar; namespace MES.Service.DB; /// /// 数据仓储工厂 /// /// public class DbContext where T : class, new() { //DbContext mesQaItemXj02Context = new DbContext(); //mesQaItemXj02Context.Db.Queryable().ToList(); private static readonly string connectionString = AppsettingsUtility.Settings.DataBaseConn; // 这里替换成你的实际连接字符串; /// /// 注意:不能写成静态的 //用来处理事务多表查询和复杂的操作 /// public SqlSugarClient Db; /// /// 入口 /// public DbContext() { Db = new SqlSugarClient(new ConnectionConfig { ConnectionString = connectionString, DbType = DbType.SqlServer, InitKeyType = InitKeyType.Attribute, //从特性读取主键和自增列信息 IsAutoCloseConnection = true //开启自动释放模式和EF原理一样我就不多解释了 }); //调式代码 用来打印SQL Db.Aop.OnLogExecuting = (sql, pars) => { Console.WriteLine(sql + "\r\n" + Db.Utilities.SerializeObject( pars.ToDictionary(it => it.ParameterName, it => it.Value))); // LogHelper.LogWrite(sql + "\r\n" +Db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value))); }; } /// /// 用来处理T表的常用操作 /// public SimpleClient CurrentDb => new(Db); /// /// 获取所有 /// /// public virtual List GetList() { return CurrentDb.GetList(); } /// /// 添加 /// /// /// public virtual bool Add(T obj) { return CurrentDb.Insert(obj); } /// /// 根据主键删除 /// /// /// public virtual bool Delete(dynamic id) { return CurrentDb.Delete(id); } /// /// 更新 /// /// /// public virtual bool Update(T obj) { return CurrentDb.Update(obj); } }