myesn

myEsn2E9

hi
github

ABP Unit of Work(工作单元)

ABP 中的 Unit of Work 是来管理数据库连接和事务的

数据库连接需要 尽晚打开,尽早释放。以事务的方式执行数据库操作已被认为是一种最佳实践。

ABP 中的连接和事务管理#

ABP 兼备了这两种方法并且提供了一个简单而又有效的模型。

仓储类 Repository#

仓储是执行数据库操作主要的类。当进入一个仓储方法时,ABP 会打开一个数据库连接(可能不是立即打开,但是在第一次使用数据库时肯定是打开的,取决于 ORM 提供者的实现)并开始一个事务。因此,在一个仓储方法中可以安全地使用连接。在方法结束后,事务被提交并且连接被释放。如果仓储方法抛出任何异常,那么事务都会回滚且连接被释放。这样一来,仓储方法就是原子的(一个工作单元)。

如果一个仓储方法调用了其他的仓储方法(一般而言,如果一个工作单元调用了其他的工作单元方法),那么它们共享相同的连接和事务。第一个进入的方法管理连接和事务,其他方法使用相同的连接和事务。

工作单元#

工作单元对于仓储和应用服务方法隐式有效。如果你想在其他地方控制数据库连接和事务,那么可以显式使用它。

参考#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。