zoukankan      html  css  js  c++  java
  • NHibernate Demo 和 效率测试

    本文关于NHibernate的Demo和效率测试,希望对大家有用.

    1.先去官网下载Nhibernate

    2.放入到项目中并建立Helper类

     1  private static ISession _Session = null;
     2 
     3         public static ISession Session
     4         {
     5             get
     6             {
     7                 if (_Session == null)
     8                 {
     9 
    10                     Configuration cfg = new Configuration();
    11 
    12                     // _Session session factory from configuration object
    13                     _Session = cfg.Configure(CurrentLocation + "Nhibernate.config").BuildSessionFactory().OpenSession();
    14                 }
    15 
    16                 return _Session;
    17             }
    18         }
    View Code

    写操作方法

    更新

     1 public static string SaveOrUpdate<T>(T item)
     2         {
     3             Helper.Session.Clear();
     4             string msg = string.Empty;
     5             try
     6             {
     7                 using (Helper.Session.BeginTransaction())
     8                 {
     9                     Helper.Session.SaveOrUpdate(item);
    10                     Helper.Session.Transaction.Commit();
    11                 }
    12             }
    13             catch (Exception ex)
    14             {
    15                 throw ex;
    16             }
    17 
    18             return msg;
    19         }
    View Code
     1 public static string Save<T>(T item)
     2         {
     3             Helper.Session.Clear();
     4             string msg = string.Empty;
     5             try
     6             {
     7                 using (Helper.Session.BeginTransaction())
     8                 {
     9                     Helper.Session.Save(item);
    10                     Helper.Session.Transaction.Commit();
    11                 }
    12             }
    13             catch (Exception ex)
    14             {
    15                 throw ex;
    16             }
    17 
    18             return msg;
    19         }
    View Code
     1 public static string Update<T>(T item)
     2         {
     3             Helper.Session.Clear();
     4             string msg = string.Empty;
     5             try
     6             {
     7                 using (Helper.Session.BeginTransaction())
     8                 {
     9                     Helper.Session.Update(item);
    10                     Helper.Session.Transaction.Commit();
    11                 }
    12             }
    13             catch (Exception ex)
    14             {
    15                 throw ex;
    16             }
    17 
    18             return msg;
    19         }
    View Code
     1 public static string Delete<T>(T item)
     2         {
     3             Helper.Session.Clear();
     4             string msg = string.Empty;
     5             try
     6             {
     7                 using (Helper.Session.BeginTransaction())
     8                 {
     9                     Helper.Session.Delete(item);
    10                     Helper.Session.Transaction.Commit();
    11                 }
    12             }
    13             catch (Exception ex)
    14             {
    15                 throw ex;
    16             }
    17 
    18             return msg;
    19         }
    View Code
     1 public static string Delete<T>(List<T> itemsToDelete)
     2         {
     3             Helper.Session.Clear();
     4             string msg = string.Empty;
     5             try
     6             {
     7                 using (Helper.Session.BeginTransaction())
     8                 {
     9                     foreach (T item in itemsToDelete)
    10                     {
    11                         Helper.Session.Delete(item);
    12                     }
    13                     Helper.Session.Transaction.Commit();
    14                 }
    15             }
    16             catch (Exception ex)
    17             {
    18                 throw ex;
    19             }
    20 
    21             return msg;
    22         }
    Delete
    1 public static IList<T> GetEntityList<T>(IList<ICriterion> whereCondition)
    2         {
    3             return GetEntityList<T>(whereCondition, null);
    4         }
    获取数据实体列表
     1 public static IList<T> GetEntityList<T>(IList<ICriterion> whereCondition,IList<string> orderColumnList)
     2         {
     3             Helper.Session.Clear();
     4             ICriteria criteria = Session.CreateCriteria(typeof(T));
     5 
     6             if (whereCondition != null && whereCondition.Count > 0)
     7             {
     8                 foreach (ICriterion cri in whereCondition)
     9                 {
    10                     criteria.Add(cri);
    11                 }
    12             }
    13 
    14             if (orderColumnList != null && orderColumnList.Count > 0)
    15             {
    16                 foreach (string orderColumn in orderColumnList)
    17                 {
    18                     criteria.AddOrder(Order.Asc(orderColumn));                    
    19                 }
    20             }
    21 
    22             return criteria.List<T>();
    23         }
    获取数据实体列表
     1 public static void ExecuteProcedure(string procedureName, List<ProcedureParameter> lstParameters)
     2         {
     3             Helper.Session.Clear();
     4             try
     5             {
     6                 var cmd = Session.Connection.CreateCommand();
     7 
     8                 cmd.CommandText = procedureName;
     9                 cmd.CommandType = CommandType.StoredProcedure;
    10                 foreach (var para in lstParameters)
    11                 {
    12                     var iPara = cmd.CreateParameter();
    13                     iPara.ParameterName = para.ParameterName;
    14                     iPara.Value = para.Value;
    15                     iPara.Direction = para.Direction;
    16                     iPara.DbType = para.DataType;
    17                     if (para.Size != 0)
    18                     {
    19                         iPara.Size = para.Size;
    20                     }
    21                     cmd.Parameters.Add(iPara);
    22                 }
    23                 cmd.ExecuteNonQuery();
    24 
    25                 foreach (var p in lstParameters)
    26                 {
    27                     if (p.Direction == ParameterDirection.Output)
    28                     {
    29                         p.Value = ((System.Data.Common.DbParameter)cmd.Parameters[p.ParameterName]).Value;
    30                     }
    31                 }
    32             }
    33             catch(Exception ex)
    34             {
    35                 throw ex;
    36             }
    37         }
    执行存储过程

    3.建立单元测试项目

    最后,我知道没有代码你们是不会来的,so,如下 :

    https://github.com/wujianfei01/NHibernate-Demo/

    Ps:请用VS2013及以后版本打开

  • 相关阅读:
    解决PKIX:unable to find valid certification path to requested target 的问题
    Linux 上的常用文件传输方式介绍与比较
    用VNC远程图形化连接Linux桌面的配置方法
    红帽中出现”This system is not registered with RHN”的解决方案
    linux安装时出现your cpu does not support long mode的解决方法
    CentOS SSH配置
    es6扩展运算符及rest运算符总结
    es6解构赋值总结
    tortoisegit安装、clon、推送
    es6环境搭建
  • 原文地址:https://www.cnblogs.com/michael90/p/6008396.html
Copyright © 2011-2022 走看看