总结NHibernate 中删除数据的几种方法
来源:互联网 发布:简单网络架构图 编辑:程序博客网 时间:2024/06/06 13:20
今天下午有人在QQ群上问在NHibernate上如何根据条件删除多条数据,于是我自己就写了些测试代码,并总结了一下NHibernate中删除数据的方式,做个备忘。不过不能保证囊括所有的方式,如果还有别的方式,请园友踊跃提出,我补充上去。
1. 使用Session.Delete(T t) 方法
使用这个方法,需要先从数据库中获取实体T或者直接new T(), 给Id赋值,然后才能调用 Session.Delete(T)
A: var session = NHibernateSession.Current; //自己写的一个获取Session的方法
var t = seesion.Get<Article>(999);
session.Delete(t);
B: var session = NHibernateSession.Current;
var t = new Article{ Id = 999};
session.Delete(t);
2. 使用Seesion.Delete(string query) 方法
var session = NHibernateSession.Current;
var hql = "from Article Where ArticleId = 999";
session.Delete(hql) ;
3. 使用IQuery.ExecuteUpdate() 方法
var session = NHibernateSession.Current;
var hql = "Delete Article Where ArticleId = 999";
session.CreateQuery(hql).ExecuteUpdate();
4. 使用ISQLQuery.ExecuteUpdate() 方法
var session = NHibernateSession.Current;
var sql = "Delete from Articles Where ArticleId = 999";
session.CreateSQLQuery(sql).ExecuteUpdate();
5. 使用Named Query
var session = NHibernateSession.Current;
session.GetNamedQuery("DeleteArticleUseSQLNamedQuery").ExecuteUpdate();
session.GetNamedQuery("DeleteArticleUseHQLNamedQuery").ExecuteUpdate();
NamedQuery.hbm.xml :
<?xml version="1.0" encoding="utf-8" ?>
<sql-query name="DeleteArticleUseSQLNamedQuery">
Delete from Articles Where ArticleId = 999
</sql-query>
<query name="DeleteArticleUseHQLNamedQuery">
Delete Article Where ArticleId = 999
</query>
</hibernate-mapping>
- 总结NHibernate 中删除数据的几种方法
- NHibernate 中删除数据的几种方法
- ArcGIS Engine中删除要素的几种方法总结
- 技巧:删除表中重复数据的几种方法
- db2中删除数据的几种方法
- Oracle 删除数据的几种方法
- Oracle 删除数据的几种方法
- Oracle 删除数据的几种方法
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- mysql中删除数据的方法总结
- 2013-8-19
- 游戏邦。游戏开发咨询网站
- 《算法竞赛-训练指南》-第二章-2.16_UVa 11427
- 数据库各类书籍推荐
- 在MFC类中各种类的指针的获取和应用 .
- 总结NHibernate 中删除数据的几种方法
- 浅谈C++中的资源管理
- POJ3282+模拟
- Oracle数据记录合并函数 wm_concat(column)
- 强大的Http监控工具Fidder
- Android 系统api实现定位及使用百度提供的api来实现定位
- 精通C++资源管理
- C语言学习笔记
- VC 实现菜单项选中效果