Du bør prøve at bruge DB Timestamp / Rowversion-funktionen. I EF erklærer du et ByteArray og nominerer det som Concurrency check-feltet. DB sætter værdien ved oprettelse. Alle efterfølgende opdateringer kan kontrollere, at værdien har ikke ændret sig.DB-opdateringer rækkeversion efter behov. Denne tilgang virker på SQL-server. Den bør opføre sig på samme måde på MYSql.
public abstract class BaseObject { [Nøgle] [Påkrævet] public virtual int Id { set; få; } [ConcurrencyCheck()] offentlig virtuel byte[] RowVersion { get; sæt; } }
eller via fluent, hvis du kan lide// Primary Keythis.HasKey(t => t.Id);
// Egenskaber //Id er en int tildelt af DB , med strengnøgler, ingen db-generering nu denne.Property(t => t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); // standard til db genererede denne.Property(t => t.RowVersion) .IsRequired() .IsFixedLength() .HasMaxLength(8) .IsRowVersion(); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Doku om det optimistiske samtidighedsmønster