• 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() 来提交语句

  • 相关阅读:
    C++ STL list
    1159 Palindrome
    3070 Fibonacci
    1458 Common Subsequence
    git工具之重写历史
    git工具之修订版本(revision)选择
    git工具之使用git调试
    程序员也要听歌啊 写写歌词~(毛不易)《借》《消愁》《像我这样的人》
    git基本命令讲解
    git工作原理
  • 原文地址:https://www.cnblogs.com/wangchuang/p/2489214.html
Copyright © 2020-2023  润新知