Bạn nên cố gắng sử dụng tính năng Dấu thời gian / Rowversion của DB. Trong EF, bạn khai báo một ByteArray và chỉ định nó làm trường kiểm tra đồng thời.DB đặt giá trị khi tạo. Tất cả các bản cập nhật tiếp theo có thể kiểm tra giá trị đã không thay đổi DB cập nhật rowversion nếu thích hợp. Cách tiếp cận này hoạt động trên máy chủ SQL, nó sẽ hoạt động giống như trên MYSql.
public abstract class BaseObject {
[Key]
[Required]
public virtual int Id { set; get; }
[ConcurrencyCheck()]
public virtual byte[] RowVersion { get; set; }
}
hoặc thông thạo nếu bạn thích // Primary Keythis.HasKey (t => t.Id);
// Properties
//Id is an int allocated by DB , with string keys, no db generation now
this.Property(t => t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); // default to db generated
this.Property(t => t.RowVersion)
.IsRequired()
.IsFixedLength()
.HasMaxLength(8)
.IsRowVersion(); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Docu về mô hình đồng thời lạc quan