0
在我的網站的每個頁面上,令牌都作爲查詢字符串參數傳入。服務器端代碼檢查數據庫中是否已存在令牌。 (令牌是數據庫中的uniqueidentifider字段)。如果令牌存在,那麼它將使用現有的令牌,否則它將使用新令牌創建一個新行。網站數據庫重複記錄
問題是有一次,我在數據庫中看到一個重複的記錄(兩行具有相同的uniqueidentifider)。我注意到插入記錄的時間相差約半秒。我唯一的猜測是當網站首次被訪問時,aspx頁面沒有完全編譯。因此,它需要幾秒鐘的時間,用戶通過輸入不同的網址轉到網站的另一個頁面,兩個請求幾乎同時被執行。
有沒有辦法來防止這種重複的記錄問題發生? (在服務器端或數據庫中......)
這是網站每頁的一部分問題中的代碼。
var record = (from x in db.Items
where x.Token == token
select x).FirstOrDefault();
if (record == null)
{
var x = new Item();
x.Id = Guid.NewGuid();
x.Token = token;
db.Items.InsertOnSubmit(x)
db.SubmitChanges;
}