天天看點

DDD~基礎設施層~續

為了不去觸發MSDTC,我會封裝一個特殊的事務,來實作這個工作,而對于SQL2008來說,可以直接使用.net自己的TransactionScope實作,對于同一個資料庫來說,它不會被提升為分布式事務,而SQL2008以下的版本,則需要使用占占封裝的事務,代碼如下:

而最新的IUnitOfWork接口就變成了一個辨別接口,代碼如下

我們看到,IUnitOfWork主要作用是标示各個倉儲在同一個上下文當中,或者說,在一個工作單元之中,下面是項目中使用的代碼,我們可以參考一下

我們可以看到,上面的倉儲提供了兩個構造方法的實作,預設為空參,還有一個可以為它傳入一個IUnitOfWork工作單元,本倉儲也支援IoC的構造方法注入。