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及以后版本打开

  • 相关阅读:
    蓝屏的钙,好喝的钙
    正则
    JavaScript 获取当前时间戳 (3种方式)
    react-native upoad imagepicker
    xmlhttprequest请求
    修改配置使fiddler可以查看https请求
    安装composer
    判定 android IOS
    看端口任务
    squid 缓存Internet 软件
  • 原文地址:https://www.cnblogs.com/michael90/p/6008396.html
Copyright © 2011-2022 走看看