NHibernate 中刪除資料的幾種方法

2022-03-26 13:55:27 字數 1599 閱讀 6237

1. 使用session.delete(t t) 方法

使用這個方法,需要先從資料庫中獲取實體t或者直接new t(), 給id賦值,然後才能呼叫 session.delete(t)

a: var session = nhibernatesession.current;  //自己寫的乙個獲取session的方法

var t = seesion.get(999);

session.delete(t); 

b:  var session = nhibernatesession.current;

var t = new article;

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" ?>

nhibernate本來就支援批量刪除,nhibernate的刪除的操作有4個過載的方法,

delete(object obj),

delete(string query),

delete(string query,objetc value,nhibernate.type.itype type),

delete(string query,objetc values,nhibernate.type.itype types),

後面三種方法都支援批量刪除

如delete(" from users where user_age >10"),就可以刪除所有年紀大於10的使用者,注意這是hql查詢,users是實體物件的類名,而不是表名

NHibernate 中刪除資料的幾種方法

1.使用session.delete t t 方法 使用這個方法,需要先從資料庫中獲取實體t或者直接new t 給id賦值,然後才能呼叫 session.delete t a var session nhibernatesession.current 自己寫的乙個獲取session的方法 var t...

NHibernate 中刪除資料的幾種方法

今天下午有人在qq群上問在nhibernate上如何根據條件刪除多條資料,於是我自己就寫了些測試 並總結了一下nhibernate中刪除資料的方式,做個備忘。不過不能保證囊括所有的方式,如果還有別的方式,請園友踴躍提出,我補充上去。1.使用session.delete t t 方法 使用這個方法,需...

NHibernate批量刪除資料的方法

方法一 session.delete 這個方法是最常用的,一共有4個過載的方法 void delete object obj int delete string query int delete string query,object value,itype type int delete stri...