258 lines
7.4 KiB
C#
258 lines
7.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Easy4net.Common;
|
|
using Easy4net.Context;
|
|
|
|
namespace Easy4net.DBUtility
|
|
{
|
|
/// <summary>
|
|
/// 数据库帮助类
|
|
/// </summary>
|
|
public class DBHelper
|
|
{
|
|
Session session;
|
|
|
|
/// <summary>
|
|
/// 根据数据库连接类型名创建一个数据库帮助类
|
|
/// </summary>
|
|
/// <param name="connName"></param>
|
|
public DBHelper(ConnectionConfig config)
|
|
{
|
|
session = Session.NewInstance(config);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据数据库连接类型名创建一个数据库帮助类
|
|
/// </summary>
|
|
/// <param name="connName"></param>
|
|
/// <returns></returns>
|
|
public static DBHelper getInstance(ConnectionConfig config)
|
|
{
|
|
return new DBHelper(config);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据主键ID获取对象
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="id">主键ID</param>
|
|
/// <returns></returns>
|
|
public T Get<T>(object id) where T : new()
|
|
{
|
|
return session.Get<T>(id);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 插入对象数据
|
|
/// </summary>
|
|
|
|
/// <param name="entity">需要插入的数据对象</param>
|
|
/// <returns></returns>
|
|
public int Save(object entity)
|
|
{
|
|
return session.Insert(entity);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量插入对象数据
|
|
/// </summary>
|
|
/// <typeparam name="T">数据对象类型</typeparam>
|
|
/// <param name="entityList">需要插入的数据对象集合</param>
|
|
/// <returns></returns>
|
|
public int Save<T>(List<T> entityList)
|
|
{
|
|
return session.Insert<T>(entityList);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新对象数据
|
|
/// </summary>
|
|
/// <typeparam name="T">数据对象类型</typeparam>
|
|
/// <param name="entity">需要更新的数据对象集合</param>
|
|
/// <returns></returns>
|
|
public int Update(Object entity)
|
|
{
|
|
return session.Update(entity);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量更新对象数据
|
|
/// </summary>
|
|
/// <typeparam name="T">数据对象类型</typeparam>
|
|
/// <param name="entityList">需要更新的数据对象集合</param>
|
|
/// <returns></returns>
|
|
public int Update<T>(List<T> entityList)
|
|
{
|
|
return session.Update<T>(entityList);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除对象数据
|
|
/// </summary>
|
|
/// <typeparam name="T">数据对象类型</typeparam>
|
|
/// <param name="entity">需要删除的数据对象</param>
|
|
/// <returns></returns>
|
|
public int Remove<T>(T entity)
|
|
{
|
|
return session.Delete<T>(entity);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量删除对象数据
|
|
/// </summary>
|
|
/// <typeparam name="T">数据对象类型</typeparam>
|
|
/// <param name="entityList">需要删除的数据对象集合</param>
|
|
/// <returns></returns>
|
|
public int Remove<T>(List<T> entityList)
|
|
{
|
|
return session.Delete<T>(entityList);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据主键ID删除数据
|
|
/// </summary>
|
|
/// <typeparam name="T">数据对象类型</typeparam>
|
|
/// <param name="id">主键ID</param>
|
|
/// <returns></returns>
|
|
public int Remove<T>(object id) where T : new()
|
|
{
|
|
return session.Delete<T>(id);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行SQL语句
|
|
/// </summary>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <param name="param">参数</param>
|
|
/// <returns></returns>
|
|
public int ExcuteSQL(string strSQL, ParamMap param)
|
|
{
|
|
return session.ExcuteSQL(strSQL, param);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行SQL语句
|
|
/// </summary>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <returns></returns>
|
|
public int ExcuteSQL(string strSQL)
|
|
{
|
|
return session.ExcuteSQL(strSQL);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据SQL查询数量
|
|
/// </summary>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <returns></returns>
|
|
public int Count(string strSQL)
|
|
{
|
|
return session.Count(strSQL);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据SQL查询记录数
|
|
/// </summary>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <param name="param">参数</param>
|
|
/// <returns></returns>
|
|
public int Count(string strSQL, ParamMap param)
|
|
{
|
|
return session.Count(strSQL, param);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据SQL查询数据
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <returns></returns>
|
|
public List<T> FindBySql<T>(string strSQL) where T : new()
|
|
{
|
|
return session.Find<T>(strSQL);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据SQL查询数据
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <param name="param">参数</param>
|
|
/// <returns></returns>
|
|
public List<T> FindBySql<T>(string strSQL, ParamMap param) where T : new()
|
|
{
|
|
return session.Find<T>(strSQL, param);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询返回分页对象
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <param name="param">参数</param>
|
|
/// <returns></returns>
|
|
public PageResult<T> FindPage<T>(string strSQL, ParamMap param) where T : new()
|
|
{
|
|
return session.FindPage<T>(strSQL, param);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询一条数据
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <returns></returns>
|
|
public T FindOne<T>(string strSQL) where T : new()
|
|
{
|
|
return session.Find<T>(strSQL).FirstOrDefault();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询一条数据
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="strSQL">SQL命令</param>
|
|
/// <param name="param">参数</param>
|
|
/// <returns></returns>
|
|
public T FindOne<T>(string strSQL, ParamMap param) where T : new()
|
|
{
|
|
return session.Find<T>(strSQL, param).FirstOrDefault();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 开启事务
|
|
/// </summary>
|
|
public void BeginTransaction()
|
|
{
|
|
session.BeginTransaction();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据锁定行为开启事物
|
|
/// </summary>
|
|
/// <param name="level"></param>
|
|
public void BeginTransaction(System.Data.IsolationLevel level)
|
|
{
|
|
session.BeginTransaction(level);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 提交事务
|
|
/// </summary>
|
|
public void CommitTransaction()
|
|
{
|
|
session.Commit();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 回滚事务
|
|
/// </summary>
|
|
public void RollbackTransaction()
|
|
{
|
|
session.Rollback();
|
|
}
|
|
}
|
|
}
|
|
|