gpt4 book ai didi

NHibernate:有没有办法将对象标记为不脏?

转载 作者:行者123 更新时间:2023-12-05 09:25:32 26 4
gpt4 key购买 nike

我有一种情况需要使用自定义 SQL 加载对象图的一部分(出于性能原因)。因此,我使用自定义 SQL (ISession.CreateSQLQuery()) 加载此集合,然后将该列表分配给另一个实体对象的属性。

问题是,当我将列表分配给属性时,它会使该实体与列表中的所有对象一起变脏,因此当我去保存对象时,它会进行数百次查询以保存整个列表.有没有一种方法可以指定一个对象不是脏的(在我自己加载它之后)?

(是的,我知道我可以关闭 cascade="save-update",但如果可以避免,我真的不想这样做。)

最佳答案

我认为有一个功能可以驱逐一个实体。

这意味着它不再连接到 NHibernate。


更新在 Jon 的各种评论之后:

  • 如果你想让 NHibernate 管理对象,即检测它是否脏,然后保持它被管理。
  • 如果不是,则 Evict() 它,它将不会被管理。您仍然可以手动保存它等等,只是它不会自动为您完成。

自动和手动之间我看不到任何中间地带......

Note that you can still persist in various ways, like saving manually the parent entity, a Set of child entities and so on... Many things are still possible.

关于NHibernate:有没有办法将对象标记为不脏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1643287/

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