Anda harus mencoba menggunakan fitur DB Timestamp / Rowversion. Di EF Anda mendeklarasikan ByteArray dan menominasikannya sebagai bidang pemeriksaan Concurrency. DB menetapkan nilai saat pembuatan. Semua pembaruan berikutnya dapat memeriksa nilai belum mengubah versi baris pembaruan DB sebagaimana mestinya. Pendekatan ini bekerja pada SQL server. Ini harus berperilaku dengan cara yang sama di MYSql.
public abstract class BaseObject {
[Key]
[Required]
public virtual int Id { set; get; }
[ConcurrencyCheck()]
public virtual byte[] RowVersion { get; set; }
}
atau melalui fasih jika Anda suka// 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(); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Dokumen tentang pola konkurensi optimis