有没有NHibernate忽略不设置属性?

时间:2016-04-13 12:17:52

标签: nhibernate

我有一个巨大的对象,它有很多懒惰的可加载属性。

我希望能够快速编辑其属性的一小部分。 当我只有几个值时,我怎么能告诉NHibernate:不要碰任何其他东西?

因为现在,当我保存时,所有未设置的东西都会丢失。

1 个答案:

答案 0 :(得分:1)

您是否在类映射上尝试了dynamic-update选项?

<class name="SomeEntity" dynamic-update="true">

但是检查一下flush是否会导致卸载的懒惰属性首先被加载,以防万一。

在你的问题中,你说你失去了其他财产。我从未目睹过这种行为。您是否在当前代码中附加(使用ISession.UpdateISession.Merge)分离的实体?
我建议的内容在这种情况下不起作用。它应该使用从当前ISession加载的实体,触及一些属性,然后仅使用ISession.Flush(或者最好是ITransaction.Commit保存到数据库,因为这不是一个好习惯。没有交易的工作)。