2011-01-27 8 views
2

申し訳ありませんこれまでに質問されている場合は検索しましたが、何も見つかりませんでした。インラインSQLを実行してnHibernateを使用してテーブルを更新する

nHibernateでインラインSQLを実行することはできますか?私はデシベルに対して実行したいと思い、このようなものがあります:私は、私は「物事」の束をループをできたし、その後_session.Update(thing)を呼び出してfalseに設定defaultThingを設定したとし

_session.CreateSQLQuery(
       @"update things 
       set defaultThing = 0 where parentId = :parentId AND thingId <> :thingId") 
       .SetInt32("parentId ", parent.Id) 
       .SetInt32("thingId", thing.Id) 
       ; 

を、私はやることができればそれは私が上で概説した方法、それは素晴らしいだろう。

+0

これはSQLの使用についてはわかりませんが、HQLを使用すると可能です。 –

答えて

4

はい、そのクエリでExecuteUpdate()を使用してください。これはIDbCommand.ExecuteNonQuery()と等価です。

kayが言及したように、HQLも使用できます。チェック12.3. DML-style operations

+1

知っておいて欲しいですが、DBを中立に保つためにHQLを使用します。 –

+0

@ kay.herzamそうです。私はあなたの*答えを読んだのですか? –

+0

もちろん私はそれを読んだ。あなたは「あなたはHQLを使用できます」と書いています。私はそれをお勧めしましたが、気にしません:) –

関連する問題