並行模式可以強制將伺服器上同步變更卡住,
Entity Framework 的實體屬性「並行模式」(Concurrency Mode)主要用來管理在多個使用者同時存取資料庫的情境下,如何處理資料更新的衝突。這涉及到資料庫中某些欄位在更新操作時,如何進行並行控制,以避免資料被覆蓋或產生不一致。
在 Entity Framework 中,實體屬性的「並行模式」主要有兩種模式:
public class Product
{
public int Id { get; set; }
// Name 屬性不參與並行控制(None 模式)
public string Name { get; set; }
// Price 屬性使用 Fixed 模式,參與並行控制
[ConcurrencyCheck]
public decimal Price { get; set; }
// Timestamp 是用來追蹤版本控制的欄位
[Timestamp]
public byte[] RowVersion { get; set; }
}
在這個範例中:
Name
屬性是 None
模式,這表示這個屬性在多個使用者同時更新時不會引發並行衝突。Price
屬性使用了 Fixed
模式,這意味著當多個用戶同時嘗試更新價格時,若其他人已經修改過,則會拋出併發例外。RowVersion
是一個常見的實踐,用來追蹤資料版本,通常會與 Fixed
模式搭配使用。[ConcurrencyCheck]
屬性:用來標記某個屬性為並行控制的一部分,通常用於 Fixed
模式。