zoukankan      html  css  js  c++  java
  • NHibernate 批量删除

    参照案例下载:/Files/liuxiaojun/LXJ.NHibernate.Demo.rar

    场景描述:

    Users,UserProfiles

    删除一个User时,连带删除此User拥有的Profile

    NHibernate的批量删除可以采用两种方式:

    1、先把要删除的对象查询出来,然后循环对查询出的对象集合进行删除,代码如下:

    复制代码
    session.Delete(exists_user);

    IList
    <UserProfileInfo> profiles = (from p in session.Query<UserProfileInfo>()
                                       
    where p.UserProfilePK.USER_ID == user_id
                                       select p).ToList();
    foreach (UserProfileInfo profile in profiles)
    {
        session.Delete(profile);
    }
    复制代码

    2、使用session.Delete(string query, object value, global:NHibernate.Type.IType type)重载方法,代码如下:

    session.Delete(exists_user);

    //批量删除Profiles
    session.Delete(" from UserProfileInfo p where p.UserProfilePK.USER_ID = ? ", user_id, NHibernateUtil.String);

     以上语法为HQL语法,里面的 UserProfileInfo 不是表名称,而是我们的持久化类对象。

    注意:如果同一事务中,批量删除时还有后续的插入操作,那么需要在删除结束后就调用 session.Flush() 来提交语句

  • 相关阅读:
    字符串序列处理
    51nod1065 最小正子段和
    51nod1043 幸运号码
    51nod1035 最长的循环节
    51nod 1021 石子归并
    POJ 2387 Til the Cows Come Home
    第一次博客作业
    Python命令行参数以及文件读入写出
    团队介绍及选题报告
    结对编程作业
  • 原文地址:https://www.cnblogs.com/wangchuang/p/2489214.html
Copyright © 2011-2022 走看看