Quando si gestisce la concorrenza ottimistica con SQL Server, il modo più semplice per creare la colonna con la versione è crearla di tipo Timestamp così che ad ogni aggiornamento sia SQL Server a cambiare la versione. Per default, la proprietà che mappa sul timestamp è di tipo byte[], ma questo comportamento non è sempre ottimale per due motivi. Il primo è che byte[] è un tipo mutabile, il secondo è che un byte[] serializzato è poco comprensibile all'occhio umano e quindi rende il debug più difficile a volte. Per questi motivi, è stata aggiunta la possibilità di mappare la colonna che fa da rowversion non solo con una proprietà di tipo byte[], ma anche di tipo long. Per fare questo, dobbiamo dichiarare la proprietà dell'entity come long o ulong e nel mapping specificare che il valore della proprietà viene generato convertendo da byte[].
public partial class Person { public int Id { get; set; } public string Name { get; set; } public long Timestamp { get; set; } } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Customers>(entity => { entity.Property(e => e.Timestamp) .IsRowVersion() .HasConversion<byte[]>() .IsConcurrencyToken(); }); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ricevere notifiche sui test con Azure Load Testing
Supportare la sessione affinity di Azure App Service con Application Gateway
Collegare applicazioni server e client con .NET Aspire
Ottimizzare le performance usando Span<T> e il metodo Split
Potenziare la ricerca su Cosmos DB con Full Text Search
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Recuperare App Service cancellati su Azure
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Montare Azure Blob Storage su Linux con BlobFuse2
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Ridurre il reflow ottimizzando il CSS
Recuperare le subissue e il loro stato di completamento in GitHub