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);
}
}