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

执行内联sql以使用nHibernate更新表,nhibernate,Nhibernate,对不起,如果以前有人问过这个问题,我已经搜索过了,但找不到任何东西 可以在nHibernate中执行内联sql吗?我有一些类似的东西,我想针对dB运行: _session.CreateSQLQuery( @"update things set defaultThing = 0 where parentId = :parentId AND thingId <> :thingId") .SetIn

对不起,如果以前有人问过这个问题,我已经搜索过了,但找不到任何东西

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

_session.CreateSQLQuery(
              @"update things
                set defaultThing = 0 where parentId = :parentId AND thingId <> :thingId")
                .SetInt32("parentId ", parent.Id)
                .SetInt32("thingId", thing.Id)
                ;
\u session.CreateSQLQuery(
@“更新东西
设置defaultThing=0,其中parentId=:parentId和thingId:thingId”)
.SetInt32(“parentId”,parent.Id)
.SetInt32(“thingId”,thing.Id)
;

我想我可以循环一系列“东西”并将defaultThing设置设置为false,然后调用session.Update(thing),但如果我能按照上面所述的方式完成,那就太好了。

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


正如kay提到的,您也可以使用HQL。检查

我不知道如何使用SQL来实现这一点,但使用HQL是可能的。很高兴知道,但我仍然会使用HQL来保持数据库中立。当然我已经读过了。你写了“你可以使用HQL”。我会推荐它的,但没关系:)@kay.herzam是的,我也会推荐:-)hql和db中性-太棒了。迭戈和凯,谢谢你们的启发,这正是我所需要的!