NHibernate 中刪除資料的幾種方法

2022-08-28 11:06:11 字數 1358 閱讀 8151

今天下午有人在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(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 中刪除資料的幾種方法

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

NHibernate 中刪除資料的幾種方法

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

NHibernate批量刪除資料的方法

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