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
Utilizzare Container Queries nominali
La gestione della riconnessione al server di Blazor in .NET 9
Gestire la cancellazione di una richiesta in streaming da Blazor
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Managed deployment strategy in Azure DevOps
Escludere alcuni file da GitHub Secret Scanning
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Selettore CSS :has() e i suoi casi d'uso avanzati
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
I più letti di oggi
- abbiamo pubblicato l'agenda del prossimo #aspilive del 12/12 su #win8 e #wp8: https://aspit.co/w8-live iscrizioni sempre gratuite!
- domani dalle 14 non perdere #aspilive! 4 ore in streaming su tutte le novità di #vs2013. iscriviti su https://aspit.co/VS14-live
- Future Decoded - Roma
- PWAConf 2020 - Online
- Microsoft Security Bulletin di luglio 2008
- Disponibile il SP1 di SQL Server 2008
- Vulnerabilità 0-Day per ASP.NET: a rischio le applicazioni non configurate correttamente
- Speciale performance: come sviluppare applicazioni ad elevate prestazioni