<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      基礎才是重中之重~你是否真正了解TransactionScope?

      回到目錄

      你是否真正了解TransactionScope?

      相關文章

      將不確定變?yōu)榇_定~transactionscope何時提升為分布式事務

      將不確定變?yōu)榇_定~transactionscope何時提升為分布式事務~續(xù)      

      將不確定變?yōu)榇_定~transactionscope何時提升為分布式事務~再續(xù)(避免引起不必要的MSDTC)

      一 了解事務選項,用它來控制嵌套事務

       

          public enum TransactionScopeOption
          {
              //如果存在環(huán)境事務(我認為應該叫嵌套事務,氛圍事務,ambient transaction),那么就加入其中,
      如果不存在就創(chuàng)建新事務。如果加入事務那么只有在環(huán)境事務提交后才算提交。
      Required = 0, //這個事務范圍將創(chuàng)建自己的事務,不會加入到當前外部事務中 RequiresNew=1, // 如果處于當前活動事務范圍內,那么這個事務范圍既不會加入氛圍事務 (ambient transaction),也不會創(chuàng)建自己的事務。
      當部分代碼需要留在事務外部時,可以使用該選項。
      Suppress = 2, }

       

      二 何時會提升為分布式事務(何時發(fā)起MSDTC請求)

      當你的WEB服務器與數(shù)據(jù)庫服務器在同臺電腦上,對同一個庫進行操作時,它不會提升為分布式事務

      當你的WEB服務器與數(shù)據(jù)庫服務器在同臺電腦上,對于同一個庫,建立多個數(shù)據(jù)上下文時,它不會提升為分布式事務

      當你的WEB服務器與數(shù)據(jù)庫服務器在同臺電腦上,當你操作兩個庫的表,這時才會提升為分布式事

      當你的WEB服務器與數(shù)據(jù)庫服務器不在同臺電腦上,如果建立多于一個Connection連接,將會發(fā)起MSDTC

      三 反映到linq to sql中,對于一個數(shù)據(jù)上下文,由于我們操作不當,也會產(chǎn)生多個Connection連接

       

      這個方法本身沒有問題,做一件事件,而且職責很明確,當完成事情后,通過base.SubmitChange()方法提交到數(shù)據(jù)庫,這時,建立了connection,發(fā)送了sql語句,完成了這個通訊。

      但有時,這種DAL層的動作需要被BLL層的業(yè)務進行組合,BLL層可以在一個事務范圍內調用多個類似的DAL方法,這時它們會把這種方法當成是分別獨立的工作單元,這是我們不希望看到的,因為在我們理解中,一個BLL業(yè)務應該是一個工作單元才對,返回到代碼中應該是,多個DAL層的方法被解釋為SQL語句后,提交一次就OK,所以,上面的代碼在進行組合后,可能會產(chǎn)生一些壞味道!

      解決方法:

      向BLL層開放數(shù)據(jù)上下文的SubmitChanges()方法及是否提交的屬性IsSubmitChange,在BLL層統(tǒng)一做提交,而對于DAL層的獨立的方法,在進行submitChanges()時,需要進行判斷IsSubmitChange是否為true,如果是,然后再提交,當然這個IsSubmitChange默認為true,即每次調用單獨的方法都會完成這個提交,這是正常的,也符合操作的完整性,

      而在BLL進行組合方法時,先將必IsSubmitChange設為false,這時,DAL的方法將不會被提交,等待BLL的Submitchange()。

      核心代碼:

      提交屬性IsSubmitChange屬性默認為true

       

       

      而對于BLL層,我們公開一個統(tǒng)一的操作對象,它會覆蓋掉基類的SubmitChanges方法,它的方法修飾符為public,對BLL層公開。

       BLL層的基類BLLBase,可以通過架造方法為IsSutmitChange屬性賦值

       

      OK,到這里,我們的BLL無論是調用BLL其它業(yè)務組合,還是調用DAL層方法組合,都可以控制代碼何時去提交到數(shù)據(jù)庫了,對于一個業(yè)務對象,就應該是一個工作單元,呵呵。

      回到目錄

       

      posted @ 2013-03-06 10:56  張占嶺  閱讀(6058)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 色吊丝免费av一区二区| 久久精品国产亚洲AV麻| 酒店大战丝袜高跟鞋人妻| 国产亚洲精品第一综合麻豆| 亚洲国产精品一二三区| 欧美一级高清片久久99| 美女无遮挡免费视频网站| 亚洲高潮喷水无码AV电影| 免费A级毛片樱桃视频| b站永久免费看片大全| 宅男噜噜噜66在线观看| 日本高清视频网站www| 国产伦精品一区二区三区免费迷| 人人狠狠综合久久亚洲爱咲| 亚洲人成网线在线播放VA| 无线日本视频精品| 国产一区二区三区黄色片 | 国产精品无码无需播放器| 洞口县| 日韩精品一区二区三区久| 国产美女直播亚洲一区色| 久久99九九精品久久久久蜜桃| 无码国内精品久久人妻蜜桃| 日韩精品区一区二区三vr| 尤物yw193无码点击进入| 在线看国产精品自拍内射| 日本高清在线观看WWW色| 特级毛片在线大全免费播放| 内射合集对白在线| 亚洲色偷偷色噜噜狠狠99| 99久久精品国产一区二区蜜芽| 久久www免费人成看片中文| 日韩乱码人妻无码中文字幕| 亚洲AVAV天堂AV在线网阿V| 亚洲精品入口一区二区乱| 97久久超碰国产精品2021| 99精品国产在热久久婷婷| 亚洲国产美国产综合一区| 国产人妻一区二区三区四区五区六| 好吊视频在线一区二区三区| 亚洲人成电影网站 久久影视|