我们有一个 DAL,需要将许多数据库插入包装在一个事务中,我们可以回滚或提交。
处理该问题的最佳做法是什么?
我们目前正在做以下工作:
- 创建数据库连接和事务
- 用代表要执行的操作的所有类填充集合。通过构造函数传入连接。
- 在 try/catch 中,遍历所有动作类并调用它们的 Publish() 方法
- 如果成功则提交(关闭连接),如果错误则回滚(关闭连接)。
该过程可能需要一些时间,并且我们似乎用完了池数据库连接。有没有更好的方法来管理交易?
这是使用SQL 2008、.net 3.5 和4.1 版本的企业库数据访问。