由於SQL Server的SavePoints功能(SqlTransaction.Save()
),我想以非常有限的方式使用SqlTransactions
(我真的需要此功能),同時仍在所有其他地方使用環境事務。我意識到這意味着此代碼(和依賴項)現在是SQL Server特有的 - 這很好。但是,爲了達到最佳實踐目的,我仍然希望在所有其他地方遵循首選的環境交易。 (如果我們需要遷移到Oracle或東西,那麼我們就需要重新修改我們的這部分代碼,但不想返工整個代碼庫。)可能從環境事務中獲取SqlTransaction?
是否有可能得到Transaction.Current
當前SqlTransaction
(它返回一個System.Transactions.Transaction
類型的對象)或其他方式? (我可能是錯的,但我猜,這是最終實現在運行時環境Transaction
對象的對象),據我所知,這根本無法做到
(related but different question I'm currently working on if you need more info on why)
我的研究表明,每個人都說我不應該混合這些,然後給出哲學原因(難以維護等)。據我所知,沒有技術上的原因,爲什麼我不應該混合這些。如果有人能提供,那麼也會回答這個問題。 – Jaxidian