我需要將記錄存儲在數據庫的多個相關表中,並在每個HTTP請求中部分更新爲Asp.net MVC Action。如何在Asp.Net中的多個頁面請求之間使用單個Sql Server事務MVC
爲此,我需要使用跨多個頁面請求的Sql Server事務,這些事件正在觸及Asp.Net MVC Action Methods。
這怎麼辦?
我需要將記錄存儲在數據庫的多個相關表中,並在每個HTTP請求中部分更新爲Asp.net MVC Action。如何在Asp.Net中的多個頁面請求之間使用單個Sql Server事務MVC
爲此,我需要使用跨多個頁面請求的Sql Server事務,這些事件正在觸及Asp.Net MVC Action Methods。
這怎麼辦?
當數據尚未準備好保存時,您可以將數據存儲在對象中。
一些例子:在對象
1)存儲數據在session。
2)您可以創建一個管理員類(單個對象遍佈整個應用程序的整個生命週期),這將允許您跨多個請求收集數據。如果您使用IOC容器,只需註冊爲單身。
3)您可以將數據客戶端存儲在Cookie或本地存儲中,並在準備就緒時將所有數據與另一個請求一起推送。
然後當你有一個完整的數據集,你可以將它以正常的方式保存到數據庫。
編輯
如果你堅持使用事務,你可以使用同樣的原理在這裏簡單地讓你的交易或數據庫方面的會議,而不是數據。不過,我建議不要執行長時間運行的交易。這可能會導致桌子上令人討厭的鎖。是的,你可以玩孤立的水平,但我相信有更好的解決方案。
消息總線如何? MassTransit改爲Saga?當事件完成時,您可以簡單地將其數據傳輸到數據庫。
我不想使用會話,因爲數據可能變得足夠大以至於無法記憶。另外,我想學習如何以這種方式使用Transaction。 – teenup
@teenup請參閱編輯 – gisek