2010-02-17 99 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執行相同的更新? –