mysql的数据层基类_使用SqlSugar封装的数据层基类

这是一个使用SqlSugar库封装的数据层基类,包含了增删改查的基本操作,如Insert、Delete、Update和Query,并支持事务处理、日志记录和缓存功能。基类提供了灵活的条件表达式和参数化查询,适用于数据库操作的抽象和统一。
摘要由CSDN通过智能技术生成

public class BaseDal where T : class ,new()

{#region 属性字段

privateDbContext _context;publicDbContext Context

{get { return_context; }set { _context =value; }

}privateSqlSugarClient _db;///

///数据处理对象 by beck.huang 2018-05-09 09:31:24///

internalSqlSugarClient Db

{get { return_db; }private set { _db =value; }

}private SimpleClient_entityDB;///

///实体数据处理对象 by beck.huang 2018-05-09 09:31:15///

internal SimpleClientEntityDB

{get { return_entityDB; }private set { _entityDB =value; }

}public Action OnDalError { get; set; }public Action OnDalLogExecuting { get; set; }public Action OnDalLogExecuted { get; set; }public Func> OnDalExecutingChangeSql { get; set; }#endregion

#region 构造函数

///

///功能描述:构造函数///作  者:beck.huang///创建日期:2018-05-09 09:30:54///任务编号:中餐///

/// 是否自动关闭连接

public BaseDal(bool blnIsAutoCloseConnection = true)

{

DbContext context=DbContext.GetDbContext(blnIsAutoCloseConnection);

_context=context;

_db=context.Db;//_db.Aop.OnLogExecuted = new Action(OnLogExecuted);//_db.Aop.OnLogExecuting = OnDalLogExecuting;//_db.Aop.OnError = OnDalError;//_db.Aop.OnExecutingChangeSql = new Func>(OnExecutingChangeSql);

_entityDB = context.GetEntityDB(_db);

}///

///功能描述:使用指定的DbContext初始化一个对象///作  者:beck.huang///创建日期:2018-05-28 17:31:57///任务编号:中餐///

/// DbContext

publicBaseDal(DbContext context)

{

_context=context;

_db=context.Db;

_entityDB= context.GetEntityDB(_db);

}#endregion

#region 增

///

///功能描述:插入数据///作  者:beck.huang///创建日期:2018-05-16 17:57:26///任务编号:中餐///

/// strSql

/// parameters

/// 是否成功

public bool Insert(string strSql, SugarParameter[] parameters = null)

{return _db.Ado.ExecuteCommand(strSql, parameters) > 0;

}///

///功能描述:插入数据///作  者:beck.huang///创建日期:2018-05-09 09:43:06///任务编号:中餐///

/// 实体列表

/// 是否成功

public bool Insert(paramsT[] entitys)

{if (entitys != null && entitys.Length > 0)

{return_entityDB.InsertRange(entitys);

}return true;

}///

///功能描述:插入数据,返回自增列///作  者:beck.huang///创建日期:2018-05-09 09:44:52///任务编号:中餐///

/// 实体

/// 自增ID

public intInsertReturnIdentity(T entity)

{return_entityDB.InsertReturnIdentity(entity);

}#endregion

#region 删

///

///功能描述:删除指定实体///作  者:beck.huang///创建日期:2018-05-09 09:47:38///任务编号:中餐///

/// 实体(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 是否成功

public boolDelete(T entity)

{return_entityDB.Delete(entity);

}///

///功能描述:删除数据///作  者:beck.huang///创建日期:2018-05-09 10:06:10///任务编号:中餐///

/// 实体列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 受影响行数

public intDelete(T[] entitys)

{if (entitys != null)return _db.Deleteable(entitys.ToList()).ExecuteCommand();else

return 0;

}///

///功能描述:删除数据///作  者:beck.huang///创建日期:2018-05-09 09:52:35///任务编号:中餐///

/// 条件表达式

/// 是否成功

public bool Delete(Expression>whereExpression)

{return_entityDB.Delete(whereExpression);

}///

///功能描述:删除数据///作  者:beck.huang///创建日期:2018-05-09 10:02:37///任务编号:中餐///

/// 条件

/// 是否成功

public bool Delete(stringstrWhere)

{return _db.Deleteable().Where(strWhere).ExecuteCommand() > 0;

}///

///功能描述:删除数据///作  者:beck.huang///创建日期:2018-05-09 10:02:37///任务编号:中餐///

/// 条件

/// 参数

/// 是否成功

public bool Delete(string strWhere, ListlstParameters)

{return _db.Deleteable().Where(strWhere, lstParameters).ExecuteCommand() > 0;

}///

///功能描述:根据ID删除///作  者:beck.huang///创建日期:2018-05-09 10:08:18///任务编号:中餐///

/// 主键列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 受影响行数

public int DeleteByID(params object[] ids)

{return _db.Deleteable().In(ids).ExecuteCommand();

}#endregion

#region 改

///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-16 17:57:26///任务编号:中餐///

/// strSql

/// parameters

/// 是否成功

public bool Update(string strSql, SugarParameter[] parameters = null)

{return _db.Ado.ExecuteCommand(strSql, parameters) > 0;

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-09 10:28:27///任务编号:中餐///

/// 实体(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 是否成功

public boolUpdate(T entity)

{return_entityDB.Update(entity);

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-09 10:28:27///任务编号:中餐///

/// 实体

/// 条件

/// 是否成功

public bool Update(T entity, stringstrWhere)

{return _db.Updateable(entity).Where(strWhere).ExecuteCommand() > 0;

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-09 10:28:27///任务编号:中餐///

/// 实体

/// 条件

/// 参数

/// 是否成功

public boolUpdate(

T entity,stringstrWhere,

ListlstParameters)

{return _db.Updateable(entity).Where(strWhere, lstParameters).ExecuteCommand() > 0;

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-09 10:31:15///任务编号:中餐///

/// 实体列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 受影响行数

public intUpdate(T[] entitys)

{return Update(entitys, null, null);

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-16 15:31:09///任务编号:中餐///

/// 实体列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 不更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 受影响行数

public intUpdate(

T[] entitys,

ListlstColumns,

ListlstIgnoreColumns)

{return Update(entitys, lstColumns, lstIgnoreColumns, "");

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-16 15:31:47///任务编号:中餐///

/// 实体列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 不更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 条件

/// 受影响行数

public intUpdate(

T[] entitys,

ListlstColumns,

ListlstIgnoreColumns,stringstrWhere)

{return Update(entitys, lstColumns, lstIgnoreColumns, strWhere, null);

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-16 15:33:06///任务编号:中餐///

/// 实体列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 不更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 条件

/// 条件参数

/// 受影响行数

public intUpdate(

T[] entitys,

ListlstColumns,

ListlstIgnoreColumns,stringstrWhere,

ListlstParameters)

{

IUpdateable up =_db.Updateable(entitys);if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0)

{

up= up.IgnoreColumns(it =>lstIgnoreColumns.Contains(it));

}if (lstColumns != null && lstColumns.Count > 0)

{

up= up.UpdateColumns(it =>lstColumns.Contains(it));

}if (!string.IsNullOrEmpty(strWhere))

{

up=up.Where(strWhere, lstParameters);

}returnup.ExecuteCommand();

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-16 15:33:36///任务编号:中餐///

/// 实体列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 不更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 条件

/// 受影响行数

public intUpdate(

T[] entitys,

ListlstColumns,

ListlstIgnoreColumns,

Expression>whereExpression)

{

IUpdateable up =_db.Updateable(entitys);if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0)

{

up= up.IgnoreColumns(it =>lstIgnoreColumns.Contains(it));

}if (lstColumns != null && lstColumns.Count > 0)

{

up= up.UpdateColumns(it =>lstColumns.Contains(it));

}if (whereExpression != null)

{

up=up.Where(whereExpression);

}returnup.ExecuteCommand();

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-09 10:40:18///任务编号:中餐///

/// 修改的列

/// 条件表达式

/// 是否成功

public bool Update(Expression> columns, Expression>whereExpression)

{return_entityDB.Update(columns, whereExpression);

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-09 10:43:35///任务编号:中餐///

/// 实体(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 不更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 是否成功

public boolUpdate(

T entity,

ListlstColumns,

ListlstIgnoreColumns)

{return Update(entity, lstColumns, lstIgnoreColumns, string.Empty);

}///

///功能描述:修改指定的列和值///作  者:beck.huang///创建日期:2018-05-16 19:33:46///任务编号:中餐///

/// 条件

/// 列和值列表(如:it => it.Name == (it.Name + 1))

/// 是否成功

public bool Update(string strWhere, params Expression>[] lstSetValueExpression)

{return Update(strWhere, null, lstSetValueExpression);

}///

///功能描述:修改指定的列和值///作  者:beck.huang///创建日期:2018-05-16 19:34:01///任务编号:中餐///

/// 条件

/// 参数

/// 列和值列表(如:it => it.Name == (it.Name + 1))

/// 是否成功

public boolUpdate(stringstrWhere,

ListlstParameters,params Expression>[] lstSetValueExpression

)

{

IUpdateable up = _db.Updateable();if (lstSetValueExpression != null)

{foreach (var item inlstSetValueExpression)

{

up=up.ReSetValue(item);

}

}if (!string.IsNullOrEmpty(strWhere))

{

up=up.Where(strWhere, lstParameters);

}return up.ExecuteCommand() > 0;

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-09 10:43:35///任务编号:中餐///

/// 实体

/// 更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 不更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 条件

/// 是否成功

public boolUpdate(

T entity,

ListlstColumns,

ListlstIgnoreColumns,stringstrWhere)

{

IUpdateable up =_db.Updateable(entity);if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0)

{

up= up.IgnoreColumns(it =>lstIgnoreColumns.Contains(it));

}if (lstColumns != null && lstColumns.Count > 0)

{

up= up.UpdateColumns(it =>lstColumns.Contains(it));

}if (!string.IsNullOrEmpty(strWhere))

{

up=up.Where(strWhere);

}return up.ExecuteCommand() > 0;

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-09 10:43:35///任务编号:中餐///

/// 实体

/// 更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 不更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 条件

/// 参数

/// 是否成功

public boolUpdate(

T entity,

ListlstColumns,

ListlstIgnoreColumns,stringstrWhere,

ListlstParameters)

{

IUpdateable up =_db.Updateable(entity);if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0)

{

up= up.IgnoreColumns(it =>lstIgnoreColumns.Contains(it));

}if (lstColumns != null && lstColumns.Count > 0)

{

up= up.UpdateColumns(it =>lstColumns.Contains(it));

}if (!string.IsNullOrEmpty(strWhere))

{

up=up.Where(strWhere, lstParameters);

}return up.ExecuteCommand() > 0;

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-15 10:10:53///任务编号:中餐///

/// entity

/// 更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 不更新的列,如果为空则不做限制(lstColumns与lstIgnoreColumns互斥)

/// 条件表达式

/// 是否成功

public boolUpdate(

T entity,

ListlstColumns,

ListlstIgnoreColumns,

Expression>whereExpression)

{

IUpdateable up =_db.Updateable(entity);if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0)

{

up= up.IgnoreColumns(it =>lstIgnoreColumns.Contains(it));

}if (lstColumns != null && lstColumns.Count > 0)

{

up= up.UpdateColumns(it =>lstColumns.Contains(it));

}if (whereExpression != null)

{

up=up.Where(whereExpression);

}return up.ExecuteCommand() > 0;

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-14 15:40:53///任务编号:中餐///

/// 列,值

/// 条件

/// 参数

/// 是否成功

public boolUpdate(

DictionarylstColumnValues,stringstrWhere,

ListlstParameters)

{

IUpdateable up = _db.Updateable(lstColumnValues);if (!string.IsNullOrEmpty(strWhere))

{

up=up.Where(strWhere, lstParameters);

}return up.ExecuteCommand() > 0;

}///

///功能描述:修改数据///作  者:beck.huang///创建日期:2018-05-14 15:42:27///任务编号:中餐///

/// 列,值

/// 条件

/// 是否成功

public bool Update(Dictionary lstColumnValues, Expression>whereExpression)

{

IUpdateable up = _db.Updateable(lstColumnValues);if (whereExpression != null)

{

up=up.Where(whereExpression);

}return up.ExecuteCommand() > 0;

}#endregion

#region 查

///

///功能描述:数据条数///作  者:beck.huang///创建日期:2018-05-25 18:07:00///任务编号:中餐///

/// strWhere

/// 返回值

public int SelectCount(stringstrWhere)

{return _db.Queryable()

.WhereIF(!string.IsNullOrEmpty(strWhere), strWhere)

.Count();

}///

///功能描述:查询所有数据///作  者:beck.huang///创建日期:2018-05-09 14:02:34///任务编号:中餐///

/// 数据列表

public ListQuery()

{return_entityDB.GetList();

}///

///功能描述:查询数据列表///作  者:beck.huang///创建日期:2018-05-10 10:39:11///任务编号:中餐///

/// 条件

/// 数据列表

public List Query(stringstrWhere)

{return _db.Queryable().WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToList();

}///

///功能描述:查询数据列表///作  者:beck.huang///创建日期:2018-05-10 10:40:32///任务编号:中餐///

/// whereExpression

/// 数据列表

public List Query(Expression>whereExpression)

{return_entityDB.GetList(whereExpression);

}///

///功能描述:查询一个列表///作  者:beck.huang///创建日期:2018-05-09 11:13:55///任务编号:中餐///

/// 条件表达式

/// 排序字段,如name asc,age desc

/// 数据列表

public List Query(Expression> whereExpression, stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).ToList();

}///

///功能描述:查询一个列表///作  者:beck.huang///创建日期:2018-05-09 11:14:54///任务编号:中餐///

/// 条件

/// 排序字段,如name asc,age desc

/// 数据列表

public List Query(string strWhere, stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToList();

}///

///功能描述:查询一个列表///作  者:beck.huang///创建日期:2018-05-09 11:14:54///任务编号:中餐///

/// 条件

/// 参数

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQuery(stringstrWhere,

ListlstParameters,stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere, lstParameters).ToList();

}///

///功能描述:查询前N条数据///作  者:beck.huang///创建日期:2018-05-09 11:16:09///任务编号:中餐///

/// 条件表达式

/// 前N条

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQuery(

Expression>whereExpression,intintTop,stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).Take(intTop).ToList();

}///

///功能描述:查询前N条数据///作  者:beck.huang///创建日期:2018-05-09 11:17:14///任务编号:中餐///

/// 条件

/// 前N条

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQuery(stringstrWhere,intintTop,stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).Take(intTop).ToList();

}///

///功能描述:查询前N条数据///作  者:beck.huang///创建日期:2018-05-09 11:17:14///任务编号:中餐///

/// 条件

/// 参数

/// 前N条

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQuery(stringstrWhere,

ListlstParameters,intintTop,stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere, lstParameters).Take(intTop).ToList();

}///

///功能描述:分页查询///作  者:beck.huang///创建日期:2018-05-09 11:27:17///任务编号:中餐///

/// 条件表达式

/// 页码(下标0)

/// 页大小

/// 数据总量

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQuery(

Expression>whereExpression,intintPageIndex,intintPageSize,ref intintTotalCount,stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).ToPageList(intPageIndex, intPageSize, refintTotalCount);

}///

///功能描述:分页查询///作  者:beck.huang///创建日期:2018-05-09 11:29:07///任务编号:中餐///

/// 条件

/// 页码(下标0)

/// 页大小

/// 数据总量

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQuery(stringstrWhere,intintPageIndex,intintPageSize,ref intintTotalCount,stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToPageList(intPageIndex, intPageSize, refintTotalCount);

}///

///功能描述:分页查询///作  者:beck.huang///创建日期:2018-05-09 11:29:07///任务编号:中餐///

/// 条件

/// 参数

/// 页码(下标0)

/// 页大小

/// 数据总量

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQuery(stringstrWhere,

ListlstParameters,intintPageIndex,intintPageSize,ref intintTotalCount,stringstrOrderByFileds)

{return _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere, lstParameters).ToPageList(intPageIndex, intPageSize, refintTotalCount);

}///

///功能描述:根据ID查询一条数据///作  者:beck.huang///创建日期:2018-05-09 11:23:21///任务编号:中餐///

/// id(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 数据实体

public T QueryByID(objectobjId)

{return _db.Queryable().InSingle(objId);

}///

///功能描述:根据ID查询一条数据///作  者:beck.huang///创建日期:2018-05-14 16:58:09///任务编号:中餐///

/// id(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 是否使用缓存

/// 缓存超时时间(秒)

/// 数据实体

publicT QueryByID(objectobjId,bool blnUseCache = false,int cacheDurationInSeconds = 2147483647)

{return _db.Queryable().WithCacheIF(blnUseCache).InSingle(objId);

}///

///功能描述:根据ID查询数据///作  者:beck.huang///创建日期:2018-05-09 11:23:34///任务编号:中餐///

/// id列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 数据实体列表

public List QueryByIDs(object[] lstIds)

{return _db.Queryable().In(lstIds).ToList();

}///

///功能描述:根据ID查询一条数据///作  者:beck.huang///创建日期:2018-05-14 16:58:47///任务编号:中餐///

/// id列表(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)]),如果是联合主键,请使用Where条件

/// 是否使用缓存

/// 缓存超时时间(秒)

/// 数据实体列表

public ListQueryByIDs(object[] lstIds,bool blnUseCache = false,int cacheDurationInSeconds = 2147483647)

{return _db.Queryable().WithCacheIF(blnUseCache).In(lstIds).ToList();

}#region QueryEntity

///

///功能描述:查询一个实体///作  者:beck.huang///创建日期:2018-05-10 10:45:37///任务编号:中餐///

/// 条件表达式

/// 是否使用缓存机制

/// 缓存过期时长

/// 实体

publicT QueryEntity(

Expression>whereExpression,bool blnUseCache = false,int cacheDurationInSeconds = 2147483647)

{return _db.Queryable().WithCacheIF(blnUseCache, cacheDurationInSeconds).WhereIF(whereExpression != null, whereExpression).First();

}///

///功能描述:查询一个实体///作  者:beck.huang///创建日期:2018-05-10 10:45:44///任务编号:中餐///

/// 条件

/// 参数

/// 是否使用缓存机制

/// 缓存过期时长

/// 实体

publicT QueryEntity(stringstrWhere,

List lstParameters = null,bool blnUseCache = false,int cacheDurationInSeconds = 2147483647)

{return _db.Queryable().WithCacheIF(blnUseCache, cacheDurationInSeconds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere, lstParameters).First();

}#endregion

#region QueryList

///

///功能描述:查询一个列表///作  者:beck.huang///创建日期:2018-05-10 10:47:14///任务编号:中餐///

/// 是否使用缓存机制

/// 缓存过期时长

/// 返回值

public List QueryList(bool blnUseCache = false, int cacheDurationInSeconds = 2147483647)

{return _db.Queryable().WithCacheIF(blnUseCache, cacheDurationInSeconds).ToList();

}///

///功能描述:查询一个列表///作  者:beck.huang///创建日期:2018-05-10 10:50:32///任务编号:中餐///

/// 条件表达式

/// 前N条数据

/// 排序字段,如name asc,age desc

/// 是否使用缓存机制

/// 缓存过期时长

/// 数据列表

public ListQueryList(

Expression>whereExpression,int? intTop = null,string strOrderByFileds = null,bool blnUseCache = false,int cacheDurationInSeconds = 2147483647)

{

ISugarQueryable q = _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression);if(intTop.HasValue)

{

q=q.Take(intTop.Value);

}returnq.WithCacheIF(blnUseCache, cacheDurationInSeconds).ToList();

}///

///功能描述:查询一个列表///作  者:beck.huang///创建日期:2018-05-10 10:52:17///任务编号:中餐///

/// 条件

/// 参数

/// 前N条数据

/// 排序字段,如name asc,age desc

/// 是否使用缓存机制

/// 缓存过期时长

/// 数据列表

public ListQueryList(stringstrWhere,

List lstParameters = null,int? intTop = null,string strOrderByFileds = null,bool blnUseCache = false,int cacheDurationInSeconds = 2147483647)

{

ISugarQueryable q = _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere, lstParameters);if(intTop.HasValue)

{

q=q.Take(intTop.Value);

}returnq.WithCacheIF(blnUseCache, cacheDurationInSeconds).ToList();

}#endregion

#region QueryPage

///

///功能描述:分页查询///作  者:beck.huang///创建日期:2018-05-10 10:55:06///任务编号:中餐///

/// 条件

/// 数据总数

/// 当前页

/// 页大小

/// 参数

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQueryPage(stringstrWhere,ref intintTotalCount,int intPageIndex = 0,int intPageSize = 20,

List lstParameters = null,string strOrderByFileds = null)

{return _db.Queryable()

.OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds)

.WhereIF(!string.IsNullOrEmpty(strWhere), strWhere, lstParameters)

.ToPageList(intPageIndex, intPageSize,refintTotalCount);

}///

///功能描述:分页查询///作  者:beck.huang///创建日期:2018-05-10 10:55:06///任务编号:中餐///

/// 条件

/// 数据总数

/// 当前页

/// 页大小

/// 参数

/// 排序字段,如name asc,age desc

/// 数据列表

public ListQueryPage(

Expression>whereExpression,ref intintTotalCount,int intPageIndex = 0,int intPageSize = 20,string strOrderByFileds = null)

{return _db.Queryable()

.OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds)

.WhereIF(whereExpression!= null, whereExpression)

.ToPageList(intPageIndex, intPageSize,refintTotalCount);

}#endregion

///

///功能描述:查询Table///作  者:beck.huang///创建日期:2018-05-16 18:03:14///任务编号:中餐///

/// strSql

/// 参数

/// DataTable

public DataTable QueryTable(string strSql, SugarParameter[] lstParameters = null)

{return_db.Ado.GetDataTable(strSql, lstParameters);

}///

///功能描述:查询DataSet///作  者:beck.huang///创建日期:2018-05-16 18:06:05///任务编号:中餐///

/// strSql

/// 参数

/// DataSet

public DataSet QueryDataSet(string strSql, SugarParameter[] lstParameters = null)

{return_db.Ado.GetDataSetAll(strSql, lstParameters);

}#endregion

#region 事务

///

///功能描述:开始事务///作  者:beck.huang///创建日期:2018-05-09 09:49:49///任务编号:中餐///

public voidBeginTran()

{

_db.Ado.BeginTran();

}///

///功能描述:提交事务///作  者:beck.huang///创建日期:2018-05-09 09:49:57///任务编号:中餐///

public voidCommitTran()

{

_db.Ado.CommitTran();

}///

///功能描述:回滚事务///作  者:beck.huang///创建日期:2018-05-09 09:50:01///任务编号:中餐///

public voidRollbackTran()

{

_db.Ado.RollbackTran();

}#endregion

#region 其他

///

///功能描述:获取数据库时间///作  者:beck.huang///创建日期:2018-05-09 19:41:31///任务编号:中餐///

/// 返回值

publicDateTime GetDBTime()

{return_db.GetDate();

}///

///功能描述:清除表缓存///作  者:beck.huang///创建日期:2018-05-11 10:15:51///任务编号:中餐///

public voidRemoveCache()

{var cacheService =_db.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService;string tableName = _db.EntityMaintenance.GetTableName();var keys = cacheService.GetAllKey();if (keys != null && keys.Count() > 0)

{foreach (var item inkeys)

{if (item.ToLower().Contains("." + tableName.ToLower() + "."))

{

cacheService.Remove(item);

}

}

}

}///

///功能描述:关闭连接///作  者:beck.huang///创建日期:2018-05-28 17:37:16///任务编号:中餐///

public voidCloseDB()

{if (_context != null && _context.Db != null)

{

_context.Db.Close();

_context.Db.Dispose();

}

}#endregion

#region 事件

/

/ 功能描述:Sql执行完发生/ 作  者:beck.huang/ 创建日期:2018-05-11 10:40:25/ 任务编号:中餐/

/sql

/pars

//public virtual void OnLogExecuted(string sql, SugarParameter[] pars)//{//}

/

/ 功能描述:Sql执行前发生/ 作  者:beck.huang/ 创建日期:2018-05-11 10:40:25/ 任务编号:中餐/

/sql

/pars

//public virtual void OnLogExecuting(string sql, SugarParameter[] pars)//{//}

/

/ 功能描述:执行SQL 错误时发生/ 作  者:beck.huang/ 创建日期:2018-05-11 10:40:25/ 任务编号:中餐/

/错误

//public virtual void OnError(Exception ex)//{//}

/

/ 功能描述:SQL执行前 可以修改SQL/ 作  者:beck.huang/ 创建日期:2018-05-11 10:47:37/ 任务编号:中餐/

/sql

/pars

/返回值

//public virtual KeyValuePair OnExecutingChangeSql(string sql, SugarParameter[] pars)//{//return new KeyValuePair(sql, pars);//}

#endregion}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值