gpt4 book ai didi

nhibernate - NHibernate 批量更新

转载 作者:行者123 更新时间:2023-12-03 11:03:47 25 4
gpt4 key购买 nike

NHibernate 中是否存在批量更新命令?据我所知,它没有。那么处理这种情况的最佳方法是什么?我想做以下事情:

  • 从数据库
  • 中获取对象列表(我们称它们为用户列表, List<User>)
  • 更改这些对象的属性,( Users.Foreach(User=>User.Country="Antartica" )
  • 单独更新每个项目( Users.Foreach(User=>NHibernate.Session.Update(User) )。
  • 调用 Session.Flush更新数据库。

  • 这是一个好方法吗?这会导致我的代码和数据库之间的大量往返吗?

    你怎么认为?或者有更优雅的解决方案吗?

    最佳答案

    启动 NHibernate 3.2 批处理作业有改进,可最大限度地减少数据库往返。更多信息请访问 HunabKu blog .
    这是它的示例 - 这些批量更新仅执行 6 次往返:

    using (ISession s = OpenSession())
    using (s.BeginTransaction())
    {
    for (int i = 0; i < 12; i++)
    {
    var user = new User {UserName = "user-" + i};
    var group = new Group {Name = "group-" + i};
    s.Save(user);
    s.Save(group);
    user.AddMembership(group);
    }
    s.Transaction.Commit();
    }

    关于nhibernate - NHibernate 批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/780940/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com