class TransactionContext: """ 事务上下文管理器类(异步版本) 支持异步事务管理,配合异步Db类使用 """ def __init__(self, db_instance): """ 初始化事务上下文管理器 Args: db_instance: 异步Db实例 """ self.db = db_instance self.session = None async def __aenter__(self): """ 进入异步上下文时创建会话 """ self.session = await self.db.get_session() return self.session async def __aexit__(self, exc_type, exc_val, exc_tb): """ 退出异步上下文时提交或回滚事务 """ try: if exc_type is None: # 如果没有异常,提交事务 await self.session.commit() else: # 如果有异常,回滚事务 await self.session.rollback() finally: # 无论如何都关闭会话 if self.session: await self.session.close() # 返回False表示不抑制异常 return False