总结NHibernate 中删除数据的几种方法
2013-08-19 17:42
429 查看
今天下午有人在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" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<sql-query name="DeleteArticleUseSQLNamedQuery">
Delete from Articles Where ArticleId = 999
</sql-query>
<query name="DeleteArticleUseHQLNamedQuery">
Delete Article Where ArticleId = 999
</query>
</hibernate-mapping>
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" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<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 中删除数据的几种方法
- NHibernate 中删除数据的几种方法
- NHibernate 中删除数据的几种方法
- NHibernate 中删除数据的几种方法
- NHibernate 中删除数据的几种方法
- Oracle删除重复数据的几种常用方法
- PHP下几种删除目录的方法总结
- C#遍历DataSet中数据的几种方法总结
- C#遍历DataSet中数据的几种方法总结
- C# 遍历DataSet中数据的几种方法总结
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- C#中遍历各类数据集合的方法总结+几种Dictionary遍历方法
- Oracle几种查找和删除重复记录的方法总结
- mysql中删除数据的方法总结
- 接口测试构造数据的几种方法总结
- Oracle删除重复记录只保留一条数据的几种方法
- C#遍历DataSet中数据的几种方法总结
- ArcEngine数据删除几种方法和性能比较[转]
- 几种在SQLServer中删除重复数据方法