我有一個問題 我的用戶。用戶在數據庫中有列 - 票。 - 票是內部貨幣。 現在當用戶點擊網站購買 - 我去webapi ===> BL(類庫)保護 - 的WebAPI
我從DB的用戶 - 檢查他是否有票,如果是的話 - 我做我的邏輯(我去到DAL - 並把這個計數器放下)。
問題是 - 如果我在網站上點擊按鈕購買 - 如此之快 - 我可以買兩次。
例
用戶有1票
他想買的東西 - 價格1票
用戶點擊快捷按鈕2次買入
1請求 去的WebAPI ==>去BL ==> B1中從DAL用戶需要從數據庫,並檢查他是否有票---是他已經===>做邏輯和p UT售票櫃檯爲0
2請求 進入的WebAPI ==>去BL ==> B1中採取從DAL用戶從數據庫,並檢查他是否有票---是他已經這裏的問題 ===>做的邏輯,把售票櫃檯爲0
,所以我不知道如何從這個錯誤保護....或者是如何更好地重新作出數據庫結構呢?
你是直接使用ado.net還是使用實體框架(或其他)來實現ORM?我問的原因是Sql Server可以選擇使用版本控制行,EF可以利用這一點爲您提供併發檢查。如果您使用ado.net,您仍然可以利用,但必須手動實施。 – Igor
使用EF 6.0的Im – Alex
如果您無法處理多個按鈕事件,則可以在第一次單擊後禁用該按鈕。 –