如何用NHibernate';处理批量数据操作的异常;s无状态会话

本文关键字:异常 操作 会话 状态 数据 NHibernate 何用 处理 | 更新日期: 2023-09-27 18:29:47

我开发了下面的代码,用于使用NHibernate的无状态会话进行批量数据操作。

var testObjects = CreateTestObjects(500000);
        var stopwatch = new Stopwatch();
        stopwatch.Start();
        using (ITransaction transaction = Session.BeginTransaction())
        {
            foreach (var testObject in testObjects)
            {
                Session.Save(testObject);
            }
            transaction.Commit();
        }
        stopwatch.Stop();
        var time = stopwatch.Elapsed;

现在我的问题是,假设我的testObjects和第5个项目中有10个项目,没有项目包含错误的架构或任何其他异常,那么我该如何处理此事务?我的意思是说,有5个项目已经提交,在发生异常之后,由于事务失败,其他5个项目将不会提交。如果是这样,那么我如何处理?

提前感谢

如何用NHibernate';处理批量数据操作的异常;s无状态会话

由于foreach循环在事务内部,如果中间有一项失败,则没有人会访问数据库。因此没有必要进行特殊处理。