如何将所有匹配的行属性isDelete设置为False?

时间:2010-01-04 22:04:41

标签: nhibernate

使用Hql或条件,如何更新多行并将属性设置为false?

即。 SQL将是:

更新UserOrders SET isDeleted = 0 - (布尔值false) 在哪里uID = 234

1 个答案:

答案 0 :(得分:1)

如果你没有以任何其他方式使用业务对象,我认为在这种情况下我会绕过NHibernate。即:不使用HQL,而是发出本机SQL查询。 (NHibernate允许你这样做;检查ISession的CreateSQLQuery)。

我为什么要这样做? 因为,当您使用HQL发出此类查询时,我认为NH将从数据库中获取每个实体,更改其属性,然后更新其对应的行。想象一下性能的提升。 但是,我认为HQL不支持UPDATE查询(但我可能会误认为那个)。