ABP 中的工作單位是用來管理數據庫連接和事務的。
數據庫連接需要 盡晚打開,盡早釋放。以事務的方式執行數據庫操作已被認為是一種最佳實踐。
ABP 中的連接和事務管理#
ABP 兼備了這兩種方法並且提供了一個簡單而又有效的模型。
倉庫類 Repository#
倉庫是執行數據庫操作主要的類。當進入一個倉庫方法時,ABP 會打開一個數據庫連接(可能不是立即打開,但是在第一次使用數據庫時肯定是打開的,取決於 ORM 提供者的實現)並開始一個事務。因此,在一個倉庫方法中可以安全地使用連接。在方法結束後,事務被提交並且連接被釋放。如果倉庫方法拋出任何異常,那麼事務都會回滾且連接被釋放。這樣一來,倉庫方法就是原子的(一個工作單位)。
如果一個倉庫方法調用了其他的倉庫方法(一般而言,如果一個工作單位調用了其他的工作單位方法),那麼它們共享相同的連接和事務。第一個進入的方法管理連接和事務,其他方法使用相同的連接和事務。
工作單位#
工作單位對於倉庫和應用服務方法隱式有效。如果你想在其他地方控制數據庫連接和事務,那麼可以顯式使用它。