CRL快速開發框架系列教程七(使用事務)

本系列目錄

  1. CRL快速開發框架系列教程一(Code First數據表不需再關心)
  2. CRL快速開發框架系列教程二(基於Lambda表達式查詢)
  3. CRL快速開發框架系列教程三(更新數據)
  4. CRL快速開發框架系列教程四(刪除數據)
  5. CRL快速開發框架系列教程五(使用緩存)
  6. CRL快速開發框架系列教程六(分佈式緩存解決方案)
  7. CRL快速開發框架系列教程七(使用事務)
  8. CRL快速開發框架系列教程八(使用CRL.Package)
  9. CRL快速開發框架系列教程九(導入/導出數據)
  10. CRL快速開發框架系列教程十(導出對象結構)
  11. CRL快速開發框架系列教程十一(大數據分庫分表解決方案)
  12. CRL快速開發框架系列教程十二(MongoDB支持)
  13. CRL快速開發框架系列教程十三(嵌套查詢)

 正文html

使用事物是一個比較頭疼的事,業務方法各類穿插,通常使用數據庫事務,那就意味着在調用事務時,須要傳遞數據訪問上下文(新版已經不須要傳遞了,自動識別)數據庫

還有一種解決方案使用TransactionScope,使代碼塊成爲事務,雖然沒有直接使用數據庫事務高效,但方便,容易開發緩存

CRL默認爲此事務框架

什麼都不用傳,真方便分佈式

方法定義post

public bool PackageTrans(TransMethod method, out string error)大數據

在方法體內隨便寫,返回成功或失敗以控制事務spa

//簡化了事務寫法,自動提交回滾
            return PackageTrans((out string ex) =>
            {
                ex = "";
                var product = new ProductData();
                product.BarCode = "code" + DateTime.Now.Millisecond;
                product.Number = 10;
                ProductDataManage.Instance.Add(product);
                return false; //會回滾
            }, out error);

同時也提供了數據庫的事務,不能跨庫code

方法定義htm

public bool PackageTrans2( TransMethod method, out string error)

把操做寫在方法體裏就好了,由框架自動控制數據訪問對象,不能跨庫

//簡化了事務寫法,自動提交回滾
            return PackageTrans2((out string ex) =>
            {
                ex = "";
                var product = new ProductData();
                product.BarCode = "code" + DateTime.Now.Millisecond;
                product.Number = 10;
                ProductDataManage.Instance.Add(product);
                return false; //會回滾
            }, out error);

在面對象開發中,不可能一直帶着數據訪問上下文的尾巴,爲了省事,使用第一種方式吧,簡便無優!

相關文章
相關標籤/搜索