[英]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.