簡體   English   中英

ASP.NET MVC / C#/ SQL Server應用程序:多個用戶同時更新表的問題

[英]ASP.NET MVC / C# / SQL Server Application : Issue with multiple users updating a table same time

我正在開發ASP.NET MVC / C#/ SQL Server應用程序,我有一個事務來更新多個表。

using (var scope = TransactionHelpers.CreateTransactionScopeRequiresNew())
{
      // CRUD operations for table 1, table 2....
}

當單個用戶調用上面的方法時,它工作正常。 但是,如果2個用戶幾乎同時調用上述方法,則一個請求起作用而另一個請求失敗,這可能是由於先前事務的表鎖定。

那么這個問題的最佳解決方案是什么?

默認隔離模式是read committed ,完全符合99%的需求,例如。 讀數據。 當您想要保存對數據庫所做的更改(創建,更新,刪除)時,實體框架足夠智能,可以在幕后創建事務而不需要您通知來包裝更改。 您可以確保一切都將被保存,或者每個更改都將被丟棄(Atomic)。

通過在Entity Framework中使用事務,您可以更改該行為並強制在事務范圍內的每個CRUD操作以可serializable隔離模式執行,這是最高和最阻塞的類型。 在您的交易過程中,任何流程都無法訪問您觸摸的表格(甚至可以從中讀取)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM