下面是我今天的收获,可自由的编写用户登录的代码,用NHibernate实现的,
NHibernateHelps.cs
using System;
using System.Collections.Generic;
using System.Text;
using NHibernate;
using NHibernate.Cfg;
using System.Collections;
using NHibernate.Expression;
namespace InventoryTools
{
public class NHibernateHelps
{
#region Query Method
public static ISession Query(string namespaceName)
{
try
{
Configuration cfg = new Configuration();
cfg.AddAssembly(namespaceName);
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
//IList userList = session.CreateCriteria(typeof(User)).List();
//IList deptList = session.CreateCriteria(typeof(Dept)).List();
return session;
//this.dgvMainTable.DataSource = userList;
//this.dgvChildTable.DataSource = deptList;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
#region Login Method
#region login Method
/// <summary>
/// login Method
/// </summary>
/// <param name="namespaceName">命名空间名</param>
/// <param name="entityName">实体类名</param>
/// <param name="propertyname">属性名</param>
/// <param name="inputname">输入值</param>
/// <returns></returns>
public static IList Login(string namespaceName,string entityName,string userName,string userPwd)
{
Configuration cfg = new Configuration();
cfg.AddAssembly(namespaceName);
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
IList iList = null;
try
{
iList = session.CreateQuery("Select user.UserPwd from " + entityName + " as user").List();
transaction.Commit();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
session.Close();
}
return iList;
}
#endregion
#region OverWrite Login Method
/// <summary>
/// OverWrite Login Method
/// </summary>
/// <param name="namespaceName">命名空间名</param>
/// <param name="entityName">实体类名</param>
/// <param name="propertyname">属性名</param>
/// <returns></returns>
public static IList Login(string namespaceName, string entityName, string propertyname)
{
Configuration cfg = new Configuration();
cfg.AddAssembly(namespaceName);
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
IList iList = null;
try
{
iList = session.CreateQuery("Select " + propertyname + " from " + entityName + " as " + propertyname).List();
transaction.Commit();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
session.Close();
}
return iList;
}
#endregion
#endregion
}
}