2010-02-17 59 views
1

我想通过NHibernate更新数据库的几个记录。NHibernate的 - 如何更新排序顺序

直接的SQL查询样子:

更新记录设置中将sortOrder =中将sortOrder +1,其中中将sortOrder> = 3和中将sortOrder < = 100

这是可能的NHibernate的?我不想采用拉取每条记录并逐个更新它们的方法,因为此方法可用于具有数千条记录的数据库。

回答

2

这听起来像你只是想发送一个命令到数据库来做更新。如果是这样的话,您可以在会话对象上使用CreateSQLQuery方法来执行此操作。 More info here

如果您试图一次保留多个对象,则需要执行批量更新。 More info on this from here

+0

是独立于CreateSQLQuery平台吗?我认为我阅读了Criteria> HQL> SQL在平台独立性方面的情况,但我可能是错的。 –

+0

CreateSQLQuery不是平台独立的。您可以拨打理论上不同的数据库可能不支持的电话。 – LordHits

+0

有没有办法通过HQL执行相同的更新? –