Nhibernate - Update single field without loading entity?

后端 未结 2 1039
暗喜
暗喜 2020-12-14 22:13

I have a use case where a user gets a list of products, and can select multiple products and active or deactivate them.

The model for this list is immutable, and I h

相关标签:
2条回答
  • 2020-12-14 22:36

    HQL is the way to go.

    Session.CreateQuery("update Product set Active = :active where id in (:ids)")
           .SetParameter("active", active)
           .SetParameterList("ids", listOfSelectedProductIds)
           .ExecuteUpdate();
    
    0 讨论(0)
  • 2020-12-14 22:45

    Since NHibernate 5, you can use LINQ for updates/deletes, like this:

    session.Query<Product>()
        .Where(p => listOfSelectedProductIds.Contains(p.Id))
        .Update(p => new { Active = active });
    

    It will not load entities or increment versions.

    https://nhibernate.info/doc/nhibernate-reference/querylinq.html#querylinq-modifying

    0 讨论(0)
提交回复
热议问题