NHibernate 中删除数据的几种方法
今天下午有人在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>
NHibernate 中删除数据的几种方法的更多相关文章
- 总结NHibernate 中删除数据的几种方法
今天下午有人在QQ群上问在NHibernate上如何根据条件删除多条数据,于是我自己就写了些测试代码,并总结了一下NHibernate中删除数据的方式,做个备忘.不过不能保证囊括所有的方式,如果还有别 ...
- MySQL中删除数据的两种方法
转自:http://blog.csdn.net/apache6/article/details/2778878 1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是trunc ...
- 关于iOS去除数组中重复数据的几种方法
关于iOS去除数组中重复数据的几种方法 在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ...
- php获取数组中重复数据的两种方法
分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...
- ArcGIS Engine中删除要素的几种方法总结
转自原文 ArcGIS Engine中删除要素的几种方法总结 /// <summary> /// 通过IFeature.Delete方法删除要素 /// </summary> ...
- PHP从数组中删除元素的四种方法实例
PHP从数组中删除元素的四种方法实例 一.总结 一句话总结:unset(),array_splice(),array_diff(),array_diff_key() 二.PHP从数组中删除元素的四种方 ...
- react在router中传递数据的2种方法
概述 不传递数据叫什么单页面应用,渲染模块还需要http请求算什么单页面应用. 本文总结了react-router4中使用BrowserRouter时传递数据的两种方法,供以后开发参考,相信对其他人也 ...
- ASP.NET中GridView控件删除数据的两种方法
今天在用GridView控件时,发现了一个问题,就是使用GridView控件在删除数据时的问题.接下来我们通过模板列方式和CommandField方式删除某条数据讲解下两者之间的区别. 方式一:通 ...
- js删除数据的几种方法
js 删除数组几种方法 var arr=['a','b','c']; 若要删除其中的'b',有两种方法: 1.delete方法:delete arr[1] 这种方式数组长度不变,此时arr[1]变为u ...
随机推荐
- iOS工程师Mac上的必备软件
原文链接 前言 iOS工程师一直都是那么的高逼格,用的是Mac电脑,耍的是iPhone手机,哇咔咔~~ 但是,作为一名iOS开发工程师,我们除了高逼格外,还必须是全能的.你不会点UI设计 ...
- EasyUI中控件汉化问题
--BY ZYZ 我在使用EasyUI的过程中,遇到了控件无汉化的情况,如下图. 这么多洋文看着觉得挺烦的.时间居然是月日年格式的,这样可不行,得改. 重写控件代码?别,那能是我这种低级代码C-V客能 ...
- javaWeb---文件上传(commons-FileUpload组件)
FileUpload是Apache组织(www.apache.org)提供的免费的上传组件,但是FileUpload组件本身还依赖于commons组件,所以从Apache下载此组件的时候还需要连同co ...
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
- .net学习之Attribute特性和EF关键知识点
一.Attribute特性/标签1.Attribute用来对类.属性.方法等标注额外的信息,贴一个标签简单的说,定制特性Attribute,本质上就是一个类,它为目标元素提供关联附加信息,并在运行时以 ...
- 图结构练习——判断给定图是否存在合法拓扑序列(dfs算法(第一个代码),邻接矩阵(前两个代码),邻接表(第三个代码))
sdut 2140 图结构练习——判断给定图是否存在合法拓扑序列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定一个有向图 ...
- POJ3321 Apple Tree(树状数组)
先做一次dfs求得每个节点为根的子树在树状数组中编号的起始值和结束值,再树状数组做区间查询 与单点更新. #include<cstdio> #include<iostream> ...
- PowerDesigner连接Oracle数据库生成数据模型【数据源连接方式】
1.进入操作系统的管理工具 2.选择ODBC数据源[32位或64位] 3.列表中是当前数据库已有的数据源,右侧点击添加按钮,添加适合自己的数据源 4.在列表中选择索要连接数据库的ODBC驱动[这里我要 ...
- WPF PRISM开发入门一( 初始化PRISM WPF程序)
这篇博客将介绍在WPF项目中引入PRISM框架进行开发的一些基础知识.目前最新的PRISM的版本是Prism 6.1.0,可以在Github上获取PRISM的源码.这个系列的博客将选择PRISM 4. ...
- linux中的基础正则表达式
基础的正则表达式如下 RE字符 意义与范例 ^word 待查找的字符串(word)在行首 word$ 待查找的字符串(word)在行尾 . 代表一定有一个任意字符的字符 \ 转义字符,将特殊字符的特殊 ...