需导入Sqlsugar命名空间进行使用,与数据库进行交互保证类名和字段的一致性
public class DBContext
{
///
/// 数据库实例
///
private SqlSugarClient db;
private static DBContext
private static string ConnectionKey;
public static DBContext
{
if (instance == null)
instance = new DBContext
return instance;
}
//数据库连接字符串
public static DBContext
{
DBContext
dBContext.db = new SqlSugarClient(
new ConnectionConfig()
{
ConnectionString = ConfigHelper.GetValueByKey("ConnectionString"),
DbType = SqlSugar.DbType.MySql, //设置数据库类型
IsAutoCloseConnection = true, //自动释放数据务,如果存在事务,在事务结束后释放
InitKeyType = InitKeyType.Attribute, //从实体特性中读取主键自增列信息
});
return dBContext;
}
public DBContext()
{
db = new SqlSugarClient(
new ConnectionConfig()
{
ConnectionString = ConfigHelper.GetValueByKey("ConnectionString"),
DbType = SqlSugar.DbType.MySql, //设置数据库类型
IsAutoCloseConnection = true, //自动释放数据务,如果存在事务,在事务结束后释放
InitKeyType = InitKeyType.Attribute, //从实体特性中读取主键自增列信息
});
}
public void Dispose()
{
if (db != null)
{
db.Dispose();
}
}
public SimpleClient
///
/// 根据sql脚本查询
///
///
public virtual DataTable GetBySql(string sqlStr)
{
return db.Ado.GetDataTable(sqlStr);
}
///
/// 获取所有
///
///
public virtual List
{
return CurrentDb.GetList();
}
///
/// 根据表达式查询
///
///
public virtual List
{
return CurrentDb.GetList(whereExpression);
}
///
/// 根据表达式查询分页
///
///
public virtual List
{
return CurrentDb.GetPageList(whereExpression, pageModel);
}
///
/// 根据表达式查询分页并排序
///
/// it
///
/// it=>it.id或者it=>new{it.id,it.name}
/// OrderByType.Desc
///
public virtual List
{
return CurrentDb.GetPageList(whereExpression, pageModel, orderByExpression, orderByType);
}
///
/// 根据主键查询
///
///
public virtual T GetById(dynamic id)
{
return CurrentDb.GetById(id);
}
///
/// 根据主键查询
///
///
public virtual T GetModel(Expression
{
var list = CurrentDb.GetList(whereExpression);
if (list != null && list.Count > 0)
return list[0];
else
return null;
}
///
/// 根据主键删除
///
///
///
public virtual bool Delete(dynamic id)
{
if (string.IsNullOrEmpty(Convert.ToString(id)))
{
Console.WriteLine(string.Format("要删除的主键id不能为空值!"));
}
return CurrentDb.DeleteById(id);
}
///
/// 根据实体删除
///
///
///
public virtual bool Delete(T data)
{
if (data == null)
{
Console.WriteLine(string.Format("要删除的实体对象不能为空值!"));
}
return CurrentDb.Delete(data);
}
///
/// 根据主键删除
///
///
///
public virtual bool Delete(dynamic[] ids)
{
if (ids.Count() <= 0)
{
Console.WriteLine(string.Format("要删除的主键ids不能为空值!"));
}
return CurrentDb.AsDeleteable().In(ids).ExecuteCommand() > 0;
}
///
/// 根据表达式删除
///
///
///
public virtual bool Delete(Expression
{
return CurrentDb.Delete(whereExpression);
}
///
/// 根据实体更新,实体需要有主键
///
///
///
public virtual bool Update(T obj)
{
if (obj == null)
{
Console.WriteLine(string.Format("要更新的实体不能为空,必须带上主键!"));
}
return CurrentDb.Update(obj);
}
///
///批量更新
///
///
///
public virtual bool Update(List
{
if (objs.Count <= 0)
{
Console.WriteLine(string.Format("要批量更新的实体不能为空,必须带上主键!"));
}
return CurrentDb.UpdateRange(objs);
}
///
/// 插入
///
///
///
public virtual bool Insert(T obj)
{
return CurrentDb.Insert(obj);
}
///
/// 批量
///
///
///
public virtual bool Insert(List
{
return CurrentDb.InsertRange(objs);
}



