------下为工具类------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//添加如下引入
using NHibernate.Cfg;
using NHibernate;
namespace DAL.publicbaseclass
{
public class DBHelperNHibernate
{
private static ISessionFactory sessionFactory;
private static void isessionFactory()
{
try
{
sessionFactory = new Configuration().Configure().BuildSessionFactory();
}
catch (Exception ex)
{
throw ex;
}
}
public static ISession GetSession()
{
isessionFactory();
return sessionFactory.OpenSession();
}
public static void executeSave<T>(T obj)
{
ISession session = GetSession();
ITransaction tx = session.BeginTransaction();
session.Save(obj);
try
{
tx.Commit();
}
catch (Exception ex)
{
throw ex;
}
finally
{
session.Close();
}
}
public static void executeDelete<T>(int id)
{
ISession session = GetSession();
ITransaction tx = session.BeginTransaction();
T t = session.Get<T>(id);
session.Delete(t);
try
{
tx.Commit();
}
catch (Exception ex)
{
throw ex;
}
finally
{
session.Close();
}
}
public static void executeUpdate<T>(T t)
{
ISession session = GetSession();
ITransaction tx = session.BeginTransaction();
session.Update(t);
try
{
tx.Commit();
}
catch (Exception ex)
{
throw ex;
}
finally
{
session.Close();
}
}
public static T executeGet<T>(int id)
{
ISession session = GetSession();
ITransaction tx = session.BeginTransaction();
T t = session.Get<T>(id);
try
{
tx.Commit();
}
catch (Exception ex)
{
throw ex;
}
finally
{
session.Close();
}
return t;
}
public static Int64 executeInt64Query(string Hql)
{
Int64 count = 0;
ISession session = GetSession();
ITransaction tx = session.BeginTransaction();
count = (Int64)session.CreateQuery(Hql).UniqueResult();
try
{
tx.Commit();
}
catch (Exception ex)
{
throw ex;
}
finally
{
session.Close();
}
return count;
}
public static IList<T> executeQuery<T>(string Hql, string[] pramts)
{
ISession session = GetSession();
ITransaction tx = session.BeginTransaction();
IQuery query = session.CreateQuery(Hql);
if (pramts != null)
{
for (int i = 0; i < pramts.Length; i++)
{
query.SetParameter(i, pramts[i]);
}
}
IList<T> list = query.List<T>();
try
{
tx.Commit();
}
catch (Exception ex)
{
throw ex;
}
finally
{
session.Close();
}
return list;
}
public static IList<T> executeQuery<T>(string Hql, int pagesize, int currentpage)
{
ISession session = GetSession();
ITransaction tx = session.BeginTransaction();
IQuery query = session.CreateQuery(Hql);
query.SetFirstResult((pagesize - 1) * currentpage);
query.SetMaxResults(pagesize);
IList<T> list = query.List<T>();
try
{
tx.Commit();
}
catch (Exception ex)
{
throw ex;
}
finally
{
session.Close();
}
return list;
}
}
}
------下为实现------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate;
using DomainModel.Entities;
namespace DAL
{
public class UsersDal : IDAL.IUsersDal
{
#region IUsersDal 成员
public void userSave(Users user)
{
DAL.publicbaseclass.DBHelperNHibernate.executeSave<Users>(user);
}
public void userDelete(int id)
{
DAL.publicbaseclass.DBHelperNHibernate.executeDelete<Users>(id);
}
public void userUpdate(Users user)
{
DAL.publicbaseclass.DBHelperNHibernate.executeUpdate<Users>(user);
}
public Users userGet(int id)
{
return DAL.publicbaseclass.DBHelperNHibernate.executeGet<Users>(id);
}
public IList<Users> userQuery()
{
string hql = "from Users";
string[] pramts = null;
return DAL.publicbaseclass.DBHelperNHibernate.executeQuery<Users>(hql, pramts);
}
public IList<Users> userQuery(int pagesize, int currentpage)
{
string hql = "from DomainModel.Entities.Users";
return DAL.publicbaseclass.DBHelperNHibernate.executeQuery<Users>(hql,pagesize,currentpage);
}
#endregion
}
}
如有问题请回复哦,如果喜欢的话就收藏好好使用吧。