Nhibernate – 更新单个字段而不加载实体?

我有一个用例,用户可以获得产品列表,并可以选择多个产品并激活或停用它们。

这个列表的模型是不可变的,我有一个存储库,它取一个应该停用它们的模型列表。

我确实有另一个完整的产品编辑模型,但我不需要加载数百个只需更改一列。

我正在使用Session.CreateQuery,但有没有更好的方法来实现这个?

HQL是要走的路。

Session.CreateQuery("update Product set Active = :active where id in (:ids)") .SetParameter("active", active) .SetParameterList("ids", listOfSelectedProductIds) .ExecuteUpdate();