NHibernate Demo 和 效率测试
本文关于NHibernate的Demo和效率测试,希望对大家有用.
1.先去官网下载Nhibernate
2.放入到项目中并建立Helper类
- private static ISession _Session = null;
- public static ISession Session
- {
- get
- {
- if (_Session == null)
- {
- Configuration cfg = new Configuration();
- // _Session session factory from configuration object
- _Session = cfg.Configure(CurrentLocation + "Nhibernate.config").BuildSessionFactory().OpenSession();
- }
- return _Session;
- }
- }
写操作方法
更新
- public static string SaveOrUpdate<T>(T item)
- {
- Helper.Session.Clear();
- string msg = string.Empty;
- try
- {
- using (Helper.Session.BeginTransaction())
- {
- Helper.Session.SaveOrUpdate(item);
- Helper.Session.Transaction.Commit();
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return msg;
- }
- public static string Save<T>(T item)
- {
- Helper.Session.Clear();
- string msg = string.Empty;
- try
- {
- using (Helper.Session.BeginTransaction())
- {
- Helper.Session.Save(item);
- Helper.Session.Transaction.Commit();
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return msg;
- }
- public static string Update<T>(T item)
- {
- Helper.Session.Clear();
- string msg = string.Empty;
- try
- {
- using (Helper.Session.BeginTransaction())
- {
- Helper.Session.Update(item);
- Helper.Session.Transaction.Commit();
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return msg;
- }
- public static string Delete<T>(T item)
- {
- Helper.Session.Clear();
- string msg = string.Empty;
- try
- {
- using (Helper.Session.BeginTransaction())
- {
- Helper.Session.Delete(item);
- Helper.Session.Transaction.Commit();
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return msg;
- }
- public static string Delete<T>(List<T> itemsToDelete)
- {
- Helper.Session.Clear();
- string msg = string.Empty;
- try
- {
- using (Helper.Session.BeginTransaction())
- {
- foreach (T item in itemsToDelete)
- {
- Helper.Session.Delete(item);
- }
- Helper.Session.Transaction.Commit();
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return msg;
- }
Delete
- public static IList<T> GetEntityList<T>(IList<ICriterion> whereCondition)
- {
- return GetEntityList<T>(whereCondition, null);
- }
获取数据实体列表
- public static IList<T> GetEntityList<T>(IList<ICriterion> whereCondition,IList<string> orderColumnList)
- {
- Helper.Session.Clear();
- ICriteria criteria = Session.CreateCriteria(typeof(T));
- if (whereCondition != null && whereCondition.Count > )
- {
- foreach (ICriterion cri in whereCondition)
- {
- criteria.Add(cri);
- }
- }
- if (orderColumnList != null && orderColumnList.Count > )
- {
- foreach (string orderColumn in orderColumnList)
- {
- criteria.AddOrder(Order.Asc(orderColumn));
- }
- }
- return criteria.List<T>();
- }
获取数据实体列表
- public static void ExecuteProcedure(string procedureName, List<ProcedureParameter> lstParameters)
- {
- Helper.Session.Clear();
- try
- {
- var cmd = Session.Connection.CreateCommand();
- cmd.CommandText = procedureName;
- cmd.CommandType = CommandType.StoredProcedure;
- foreach (var para in lstParameters)
- {
- var iPara = cmd.CreateParameter();
- iPara.ParameterName = para.ParameterName;
- iPara.Value = para.Value;
- iPara.Direction = para.Direction;
- iPara.DbType = para.DataType;
- if (para.Size != )
- {
- iPara.Size = para.Size;
- }
- cmd.Parameters.Add(iPara);
- }
- cmd.ExecuteNonQuery();
- foreach (var p in lstParameters)
- {
- if (p.Direction == ParameterDirection.Output)
- {
- p.Value = ((System.Data.Common.DbParameter)cmd.Parameters[p.ParameterName]).Value;
- }
- }
- }
- catch(Exception ex)
- {
- throw ex;
- }
- }
执行存储过程
3.建立单元测试项目
略
最后,我知道没有代码你们是不会来的,so,如下 :
https://github.com/wujianfei01/NHibernate-Demo/
Ps:请用VS2013及以后版本打开
NHibernate Demo 和 效率测试的更多相关文章
- ORM for Net主流框架汇总与效率测试
框架已经被越来越多的人所关注与使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论). ORM框架:Object/Relation Mapping( ...
- 关于 pgsql 数据库json几个函数用法的效率测试
关于 pgsql 数据库json几个函数用法的效率测试 关于pgsql 几个操作符的效率测试比较1. json::->> 和 ->> 测试方法:单次运行100次,运行10个单次 ...
- Python_线程、线程效率测试、数据隔离测试、主线程和子线程
0.进程中的概念 三状态:就绪.运行.阻塞 就绪(Ready):当进程已分配到除CPU以外的所有必要资源,只要获得处理机便可立即执行,这时的进程状态成为就绪状态. 执行/运行(Running)状态:当 ...
- 进程池原理及效率测试Pool
为什么会有进程池的概念? 当我们开启50个进程让他们都将100这个数减1次减到50,你会发现特别慢! 效率问题,原因: 1,开辟内存空间.因为每开启一个进程,都会开启一个属于这个进程池的内存空间,因为 ...
- postgresql-int,bigint,numeric效率测试
在postgresql9.5的时候做过一个测试就是sum()的效率最终的测试结果是sum(int)>sum(numeric)>sum(bigint)当时比较诧异为啥sum(bigint)效 ...
- 纯PHP Codeigniter(CI) ThinkPHP效率测试
最近一直想做一个技术类的新闻站点,想做的执行效率高些,想用PHP做,一直纠结于用纯PHP做还是用CI或者THINKPHP.用纯PHP效率高,缺点 n多,比如安全方面.构架方面等等等等:用CI.thin ...
- Python--day39--进程池原理及效率测试
#为什么要有进程池的概念 #效率 #每次开启进程都要创建一个属于这个进程的内存空间 #寄存器 堆栈 文件 #进程过多 操作系统调度进程 # #进程池 #python中的 先创建一个属于进程的池子 #这 ...
- 关于pgsql 几个操作符的效率测试比较
关于pgsql 几个操作符的效率测试比较1. json::->> 和 ->> 测试方法:单次运行100次,运行10个单次取平均时间.测试结果:->> 效率高 5% ...
- [NHibernate]基本配置与测试
目录 写在前面 nhibernate文档 搭建项目 映射文件 持久化类 辅助类 数据库设计与连接配置 测试 总结 写在前面 一年前刚来这家公司,发现项目中使用的ORM是Nhibernate,这个之前确 ...
随机推荐
- Html 之div+css布局之css选择器
CSS选择器 什么叫选择器?通俗的来说就是 我想改变html 中某个地方的 字体大小 或者背景色 或者其它属性 内边距 外边距,宽度高度 等等 一些Css 样式. 那么我们如何找到对应的 元素呢? ...
- java mail使用qq邮箱发邮件的配置方法
最近自己折腾了下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2. ...
- Apache2 同源策略解决方案 - 配置 CORS
什么是同源策略 现在的浏览器大多配有同源策略(Same-Origin Policy),具体表现如下: 浏览某一网站,例如 http://www.decembercafe.org/.这个网页中的 Aja ...
- tomcat取带有中文的参数乱码的解决办法
1. 对于post参数,可以用filter来处理,在dofilter之前,加入以下代码: request.setCharacterEncoding("UTF-8"); 2. 对于g ...
- C#中as用法
在程序中,进行类型转换时常见的事,C#支持基本的强制类型转换方法,例如 Object obj1 = new NewType();NewType newValue = (NewType)obj1;这样强 ...
- js 实现进度条功能。
/** * 纯js进度条 * Created by kiner on 15/3/22. */ function progress(options){ this.w = (options &&a ...
- 详解SVN 的使用
一.什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 二.SVN的下载安装 下载地址:http ...
- 使用Quartz.net动态设置定时时间问题
关于使用Quartz.net就不用解释了.. 应客户需求问题..需要将做一个界面设置定时的时间.因此我在百度一番..用CronExpression类可以设置时间... 我知道这个类有定义好的字段..不 ...
- jsp中target="_blank"的用法
对于点击查询按钮或a标签等,打开一个新页面并显示结果的做法如下: 1.form表单: 在form标签上加target="_blank"后,点击搜索按钮,显示查询结果时会打开一个新页 ...
- 深入剖析ConcurrentHashMap(2)
转载自并发编程网 – ifeve.com本文链接地址: 深入剖析ConcurrentHashMap(2) 经过之前的铺垫,现在可以进入正题了.我们关注的操作有:get,put,remove 这3个操作 ...