1
我們在生產應用中面臨着一個非常複雜的問題。TransactionScope中的代碼奇怪的行爲?
我們有一個WCF方法,它在數據庫中創建一個具有所有關係的複雜實體。
public void InsertEntity(Entity entity) { using(TransactionScope scope = new TransactionScope()) { EntityDao.Create(entity); } }
EntityDao.Create(entity)方法非常複雜,並且有大量的邏輯。在整個創建過程中,它創建了多個子實體,並對數據庫也有多個查詢。
在實體創建的整個WCF請求通常連接被保持在ThreadStatic變量和由DAO的重複使用。儘管步驟2中描述的DAO中的一些查詢使用新連接並在使用後關閉它。
總的來說,我們已經看到上述過程行爲是不穩定的。內部DAO中的一些查詢甚至不會從數據庫返回實際數據?運行到actaul數據存儲時的相同查詢會提供正確的結果。
是一個什麼的這種行爲可能原因是什麼?不建議