版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaouncle/article/details/82888748
一、非Sql增删改查单个对象
public ActionResult Index()
{
int id = 16;
#region 增一个对象__Save()
using (ISession session = new NHibernateHelper().OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
Sys_User user = new Sys_User()
{
Name = "guo",
Gender = "男",
Age = 16
};
object result = session.Save(user);
session.Flush();
id = Convert.ToInt32(result);
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
#region 删一个对象__Delete()
using (ISession session = new NHibernateHelper().OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
Sys_User user = new Sys_User()
{
Id = id
};
session.Delete(user);
session.Flush();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
#region 改一个对象__Update()
using (ISession session = new NHibernateHelper().OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
#region 不能只修改某字段,未赋值的属性会自动赋值为null
Sys_User user = new Sys_User()
{
Id = id,
Name = "heng"
};
session.Update(user);
#endregion
session.Flush();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
#region 查一个对象__Get<Sys_User>()
using (ISession session = new NHibernateHelper().OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
Sys_User user = session.Get<Sys_User>(6);
session.Flush();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
return View();
}
二、非Sql增删改查多个对象
public ActionResult Index()
{
int id = 16;
#region 增多个对象__SetBatchSize()
using (ISession session = new NHibernateHelper().OpenSession())
{
session.SetBatchSize(10);
ITransaction transaction = session.BeginTransaction();
try
{
for (int i = 0; i < 23; i++)
{
Sys_Dict dict = new Sys_Dict()
{
DictCode = "guo",
DictName = "男",
ParentCode = Guid.Parse("cbb2cdb6-1ebe-44b2-970f-a95a04fc169b"),
Remarks = "备注"
};
session.Save(dict);
}
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
#region 删多个对象__Delete(hql)
using (ISession session = new NHibernateHelper().OpenSession())
{
session.SetBatchSize(10);
ITransaction transaction = session.BeginTransaction();
try
{
//hql语法:Sys_Dict指的是类名而不是表名
session.Delete("from Sys_Dict where ParentCode='cbb2cdb6-1ebe-44b2-970f-a95a04fc169b'");
session.Flush();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
#region 改多个对象__没找到方法
using (ISession session = new NHibernateHelper().OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
#region 查多个对象__QueryOver<Sys_User>()、CreateCriteria<Sys_User>()
using (ISession session = new NHibernateHelper().OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
#region 查询多个对象
IList<Sys_User> userList = session.QueryOver<Sys_User>().Where(a => a.Id > 3).List();
session.Flush();
#endregion
#region 查询多个对象
ICriteria criteria = session.CreateCriteria<Sys_User>();
criteria.Add(Restrictions.Where<Sys_User>(a => a.Id > 3));
criteria.Add(Restrictions.Like("Name", "ve", MatchMode.Anywhere));
IList<Sys_User> userList = criteria.List<Sys_User>();
session.Flush();
#endregion
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
return View();
}
三、Sql语句实现增删改查
public ActionResult Index()
{
int id = 16;
#region 执行Sql语句__CreateSQLQuery().ExecuteUpdate()、CreateSQLQuery().SetResultTransformer()
using (ISession session = new NHibernateHelper().OpenSession())
{
ITransaction transaction = session.BeginTransaction();
try
{
//insert、delete、update通过ExecuteUpdate()执行
string insertSql = string.Format("insert into Sys_User(Name,Gender) values('{0}','{1}')", "sqlInsert", 16);
string deleteSql = string.Format("delete from Sys_User where Id={0}", id);
string updateSql = string.Format("update Sys_User set Name='{0}' where Id={1}", "haha", id);
string selectSql = string.Format("select Id, Name, Gender, Age, Password, SortNo, CreateDate from Sys_User where Id={1}", "ha", id);
ISQLQuery sqlQuery = session.CreateSQLQuery(insertSql);
sqlQuery.ExecuteUpdate();
sqlQuery = session.CreateSQLQuery(deleteSql);
sqlQuery.ExecuteUpdate();
sqlQuery = session.CreateSQLQuery(updateSql);
sqlQuery.ExecuteUpdate();
//select通过SetResultTransformer()执行
IList<Sys_User> userList = session.CreateSQLQuery(selectSql).SetResultTransformer(Transformers.AliasToBean<Sys_User>()).List<Sys_User>();
session.Flush();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
}
}
#endregion
return View();
}
四、NHibernate事务
public ActionResult Index()
{
#region 增一个对象
using (ISession session = new NHibernateHelper().OpenSession())
{
//1、创建事务
ITransaction transaction = session.BeginTransaction();
try
{
Sys_User user = new Sys_User()
{
Name = "guo",
Gender = "男",
Age = 16
};
object result = session.Save(user);
session.Flush();
id = Convert.ToInt32(result);
//2、提交事务
transaction.Commit();
}
catch (Exception ex)
{
//3、回滚事务
transaction.Rollback();
}
}
#endregion
return View();
}