我有一个巨大的对象,它有很多懒惰的可加载属性。
我希望能够快速编辑其属性的一小部分。 当我只有几个值时,我怎么能告诉NHibernate:不要碰任何其他东西?
因为现在,当我保存时,所有未设置的东西都会丢失。
答案 0 :(得分:1)
您是否在类映射上尝试了dynamic-update选项?
<class name="SomeEntity" dynamic-update="true">
但是检查一下flush是否会导致卸载的懒惰属性首先被加载,以防万一。
在你的问题中,你说你失去了其他财产。我从未目睹过这种行为。您是否在当前代码中附加(使用ISession.Update
或ISession.Merge
)分离的实体?
我建议的内容在这种情况下不起作用。它应该使用从当前ISession
加载的实体,触及一些属性,然后仅使用ISession.Flush
(或者最好是ITransaction.Commit
保存到数据库,因为这不是一个好习惯。没有交易的工作)。