gpt4 book ai didi

刷新 session 时 SQL 语句的 Nhibernate 顺序

转载 作者:行者123 更新时间:2023-12-03 17:17:45 25 4
gpt4 key购买 nike

根据 NHibernate 文档,刷新 session 时 SQL 语句按以下顺序发出:

  • 所有实体插入,以相同的顺序使用 ISession.Save()
  • 保存相应的对象
  • 所有实体更新
  • 所有集合删除
  • 所有集合元素删除、更新和插入
  • 所有集合插入
  • 所有实体删除,以相同的顺序使用 ISession.Delete() 删除相应的对象

  • 为什么按此顺序强制执行,有什么方法可以更改它,以便按照我给它们的顺序执行语句?

    最佳答案

    按照这个顺序,因为它是最安全的。

    不,你不能改变顺序。而且,你从来没有给 NHibernate 任何命令:你只是为了持久化标记实体; NHibernate 自动确定要做什么。

    如果您认为需要对单个 SQL 操作进行更多控制,可以使用 IStatelessSession而不是常规 ISession .您会丢失 NH 自动执行的所有操作(延迟加载、缓存、脏跟踪),但是您可以(必须)明确说明何时 Insert , DeleteUpdate一个记录。

    关于刷新 session 时 SQL 语句的 Nhibernate 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4443479/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com