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,这个之前确 ...
随机推荐
- LayaAir引擎——(八)
var a = new Array(); var b = new Array(); var ksjmCursor = 0; function ksjminit() { ksjminitName(); ...
- Android中通过注解代替findViewById方法
转自:http://www.2cto.com/kf/201405/302998.html 这篇文章主要讲解注解实现findViewById的功能,首先我们来熟悉一下在java中怎么定义一个注解和解析一 ...
- C语言文件处理
数据存储方式: 数据->变量->文件 数据 10个学生的信息: #define N 10 struct student { char stu_num[15]; char stu_name[ ...
- 前端一:走进HTML
一:HTML(HyperText Markup Language)介绍 超文本标记语言,标准通用标记语言下的一个应用.“超文本”就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素.超文本标记语 ...
- SQL --Chapter 04 数据更新
数据的插入(INSERT语句的使用方法) INSERT INTO ShohinIns (shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, 原则上, ...
- parentNode、parentElement,childNodes、children 它们有什么区别呢?
parentNode.parentElement,childNodes.children 它们有什么区别呢?parentElement 获取对象层次中的父对象. parentNode 获取文档层次中的 ...
- 【转载】oracle dbms_metadata.get_ddl的使用方法总结
转自:http://www.jb51.net/article/39715.htm dbms_metadata.get_ddl()用于获取对象的ddl,其具体用法如下. 注意:在sqlplus里,为了更 ...
- PHP的学习--PHP加密
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串. ...
- 在windows平臺下使用cygwin獲取root用戶權限
最近在使用cygwin時發現一個問題,當我要使用root用戶權限時,竟然創建不了root賬戶.最後在網上找了下後,暫時衹找到了通過更改當前用戶權限獲得root權限的方法,具體如下: 实际环境:win1 ...
- Ext.Net 学习随笔 001 安装Ext.Net
Ext.Net版本:4.1.0 Ext.Net官网:ext.net Ext.Net官方演示:mvc.ext.net Ext.Net MVC Example 下载:github.com/extnet/E ...