切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
C# 基础
Mybatis
ADO.NET
ASP.NET
Python 基础
Linq
Web Forms
.NET
Spring
SpringBoot
SpringCloud
.NET Core 中间件
Maven
.NET 类库
ASP.NET MVC
EF
NHibernate
WebApi
Java
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
服务端
NHibernate 基础类
[TOC] ### NHibernate ORM访问数据库基础类 ```SQL using NHibernate; using NHibernate.Linq; using NHibernate.Cfg; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using NHibernate.Transform; namespace DAL { public class NHibernateRepository<T> { /// <summary> /// 获取hibernate配置文件信息 /// </summary> public static readonly Configuration cfg = new NHibernate.Cfg.Configuration().Configure(string.Format(@"{0}\APP_Config\hibernate.cfg.xml", HttpRuntime.AppDomainAppPath)); /// <summary> /// Session工厂 /// </summary> public static ISessionFactory sessionFactory; /// <summary> /// 构造函数 /// </summary> public NHibernateRepository() { if (sessionFactory == null) { //创建Session工厂 sessionFactory = cfg.BuildSessionFactory(); } } /// <summary> /// 保存 /// </summary> /// <param name="entity"></param> /// <returns></returns> public virtual object Save(T entity) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { var id = session.Save(entity); session.Flush(); tran.Commit(); return id; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 更新 /// </summary> /// <param name="entity"></param> public void Update(T entity) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { session.Update(entity); session.Flush(); tran.Commit(); } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 更新 /// </summary> /// <param name="query"></param> public void Update(string query) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { int id = session.CreateSQLQuery(query).ExecuteUpdate(); session.Flush(); tran.Commit(); //return result; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 删除 /// </summary> /// <param name="entity"></param> public void Delete(T entity) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { session.Delete(entity); session.Flush(); tran.Commit(); } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 删除 /// </summary> /// <param name="query"></param> public int Delete(string query) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { int result = session.Delete(query); session.Flush(); tran.Commit(); return result; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 获取单条记录 /// </summary> /// <param name="id"></param> /// <returns></returns> public T Get(object id) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { T t = session.Get<T>(id); tran.Commit(); return t; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 获取模型对象 /// </summary> /// <param name="id"></param> /// <returns></returns> public T Load(object id) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { T t = session.Load<T>(id); tran.Commit(); return t; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 获取模型对象 /// </summary> /// <param name="id"></param> /// <returns></returns> public TK Load<TK>(object id) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { TK t = session.Load<TK>(id); tran.Commit(); return t; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 获取模型对象 /// </summary> /// <param name="id"></param> /// <returns></returns> public TK Load<TK>(string sql) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { TK t = session.CreateSQLQuery(sql).SetResultTransformer(Transformers.AliasToBean<TK>()).List<TK>().FirstOrDefault(); tran.Commit(); return t; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 获取多条记录 /// </summary> /// <param name="sql">查询的sql语句</param> /// <returns></returns> public IList<T> LoadAll(string sql) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { IList<T> list = session.CreateSQLQuery(sql).SetResultTransformer(Transformers.AliasToBean<T>()).List<T>(); tran.Commit(); return list; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 分页获取列表信息 /// </summary> /// <param name="pageStart">开始查找的记录条</param> /// <param name="pageLimit">显示数量</param> /// <param name="sql">查询的sql语句</param> /// <returns></returns> public IList<T> GetPageList(int pageStart, int pageLimit, string sql) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { IList<T> list = session.CreateSQLQuery(sql). SetFirstResult(pageStart). SetMaxResults(pageLimit). SetResultTransformer(Transformers.AliasToBean<T>()). List<T>(); tran.Commit(); return list; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 分页获取列表信息 /// </summary> /// <param name="pageStart">开始查找的记录条</param> /// <param name="pageLimit">显示数量</param> /// <param name="sql">查询的sql语句</param> /// <returns></returns> public IList<TK> GetPageList<TK>(int pageStart, int pageLimit, string sql) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { IList<TK> list = session.CreateSQLQuery(sql).SetFirstResult(pageStart).SetMaxResults(pageLimit).SetResultTransformer(Transformers.AliasToBean<TK>()).List<TK>(); tran.Commit(); return list; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } /// <summary> /// 获取数据总记录数 /// </summary> /// <param name="sql"></param> /// <returns></returns> public int GetRecordCount(string sql) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction tran = session.BeginTransaction()) { try { int count = Convert.ToInt32(session.CreateSQLQuery(sql).AddScalar("C",NHibernateUtil.Int32).UniqueResult()); tran.Commit(); return count; } catch (Exception ex) { tran.Rollback(); throw ex; } } } } } } ```
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号