zoukankan      html  css  js  c++  java
  • 总结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 >
    复制代码


  • 相关阅读:
    HNCU 1746: 算法4-1,4-3:定位子串
    HNCU 1330: 算法3-1:八进制数
    HNCU 1741: 算法3-2:行编辑程序
    51NOD 1073 约瑟夫环
    约瑟夫问题
    HNCU1325: 算法2-3~2-6:Big Bang(静态链表)
    指针知识复习
    html----学完总结
    html7---转载---为何img,input等内联元素可以设置高度与宽度
    html6---转载---块级元素与行内元素
  • 原文地址:https://www.cnblogs.com/riskyer/p/3268743.html
Copyright © 2011-2022 走看看