执行内联sql以使用nHibernate更新表

时间:2011-01-27 11:22:09

标签: nhibernate

很抱歉,如果之前有人询问,我会进行搜索但找不到任何内容。

是否可以在nHibernate中执行内联sql?我有类似的东西,我想对dB运行:

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

我想我可以遍历一堆“事物”并将defaultThing设置为false,然后调用_session.Update(thing),但如果我能按照上面的描述进行操作,那就太棒了。

1 个答案:

答案 0 :(得分:4)

是的,只需对该查询使用ExecuteUpdate()即可。它相当于IDbCommand.ExecuteNonQuery()

正如凯提到的,你也可以使用HQL。查看12.3. DML-style operations