NHibernate中的多次保存(2.1)

时间:2009-10-17 23:56:46

标签: c# nhibernate

如何在NHibernate中保存对象集合? 我从SubSonic迁移(我不喜欢SubSonic 3版本,SubSonic 2已经死了......)这曾经是一个简单的操作......

有一种方法可以映射集合(没有关联)来完成这项任务吗?

我的实际代码是:

using (ISession session = NHibernateHelper.GetCurrentSession())
{
    using (ITransaction transaction = session.BeginTransaction())
    {
        foreach (var player in players)
        {
             session.Save(player);
             transaction.Commit();
        }
    }
}

提前致谢!

1 个答案:

答案 0 :(得分:3)

您需要在循环之外提交事务。事务的目标是在1次调用中基本上将多个操作批量处理到数据库。这是编辑后的版本:

using (ISession session = NHibernateHelper.GetCurrentSession())
{
    using (ITransaction transaction = session.BeginTransaction())
    {
        foreach (var player in players)
        {
            session.Save(player);
        }
        transaction.Commit();
    }
}